shithub: mc

Download patch

ref: 40d35cd1593d7da63ddfef94dad1ca3fcd68ff12
parent: c9ffabb3d4425533371659bed8bbda68712122e7
author: Ori Bernstein <[email protected]>
date: Thu Dec 12 15:40:49 EST 2013

Update all names in a namespace.

    We forgot to write out 'std.' when we wrote out the type. This
    lead to a mismatched type name when resolving.

--- a/parse/stab.c
+++ b/parse/stab.c
@@ -244,6 +244,7 @@
 {
     void **k;
     size_t i, nk;
+    Tydefn *td;
 
     if (st->name)
         die("Stab %s already has namespace; Can't set to %s", namestr(st->name), name);
@@ -255,6 +256,11 @@
     k = htkeys(st->ty, &nk);
     for (i = 0; i < nk; i++)
         setns(k[i], name);
+    for (i = 0; i < nk; i++) {
+        td = htget(st->ty, k[i]);
+        if (td->type && td->type->type == Tyname)
+            setns(td->type->name, name);
+    }
     free(k);
     k = htkeys(st->ns, &nk);
     for (i = 0; i < nk; i++)