summaryrefslogtreecommitdiff
path: root/sys/src/cmd/6l/obj.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/src/cmd/6l/obj.c')
-rw-r--r--sys/src/cmd/6l/obj.c30
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;
}