diff options
Diffstat (limited to 'sys/src/cmd/6l/obj.c')
| -rw-r--r-- | sys/src/cmd/6l/obj.c | 30 |
1 files changed, 4 insertions, 26 deletions
diff --git a/sys/src/cmd/6l/obj.c b/sys/src/cmd/6l/obj.c index 71824398d..ba8984773 100644 --- a/sys/src/cmd/6l/obj.c +++ b/sys/src/cmd/6l/obj.c @@ -560,12 +560,7 @@ zaddr(uchar *p, Adr *a, Sym *h[]) } } - while(nhunk < sizeof(Auto)) - gethunk(); - u = (Auto*)hunk; - nhunk -= sizeof(Auto); - hunk += sizeof(Auto); - + u = malloc(sizeof(Auto)); u->link = curauto; curauto = u; u->asym = s; @@ -856,12 +851,7 @@ loop: goto loop; } - while(nhunk < sizeof(Prog)) - gethunk(); - p = (Prog*)hunk; - nhunk -= sizeof(Prog); - hunk += sizeof(Prog); - + p = malloc(sizeof(Prog)); p->as = o; p->line = bloc[2] | (bloc[3] << 8) | (bloc[4] << 16) | (bloc[5] << 24); p->back = 2; @@ -1147,12 +1137,7 @@ lookup(char *symb, int v) if(memcmp(s->name, symb, l) == 0) return s; - while(nhunk < sizeof(Sym)) - gethunk(); - s = (Sym*)hunk; - nhunk -= sizeof(Sym); - hunk += sizeof(Sym); - + s = malloc(sizeof(Sym)); s->name = malloc(l + 1); memmove(s->name, symb, l); @@ -1170,14 +1155,7 @@ lookup(char *symb, int v) Prog* prg(void) { - Prog *p; - - while(nhunk < sizeof(Prog)) - gethunk(); - p = (Prog*)hunk; - nhunk -= sizeof(Prog); - hunk += sizeof(Prog); - + Prog *p = malloc(sizeof(Prog)); *p = zprg; return p; } |
