|
@@ -166,7 +166,6 @@ void release(Blk *p);
|
|
|
Blk* dcgetwd(Blk *p);
|
|
|
void putwd(Blk *p, Blk *c);
|
|
|
Blk* lookwd(Blk *p);
|
|
|
-char* nalloc(char *p, unsigned nbytes);
|
|
|
int getstk(void);
|
|
|
|
|
|
/********debug only**/
|
|
@@ -1223,7 +1222,7 @@ init(int argc, char *argv[])
|
|
|
readptr = &readstk[0];
|
|
|
k=0;
|
|
|
sp = sptr = &symlst[0];
|
|
|
- while(sptr < &symlst[TBLSZ]) {
|
|
|
+ while(sptr < &symlst[TBLSZ-1]) {
|
|
|
sptr->next = ++sp;
|
|
|
sptr++;
|
|
|
}
|
|
@@ -2104,14 +2103,14 @@ copy(Blk *hptr, int size)
|
|
|
if(size > maxsize)
|
|
|
maxsize = size;
|
|
|
sz = length(hptr);
|
|
|
- ptr = nalloc(hptr->beg, size);
|
|
|
+ ptr = malloc(size);
|
|
|
if(ptr == 0) {
|
|
|
- garbage("copy");
|
|
|
- if((ptr = nalloc(hptr->beg, size)) == 0) {
|
|
|
- Bprint(&bout,"copy size %d\n",size);
|
|
|
- ospace("copy");
|
|
|
- }
|
|
|
+ Bprint(&bout,"copy size %d\n",size);
|
|
|
+ ospace("copy");
|
|
|
}
|
|
|
+ memmove(ptr, hptr->beg, sz);
|
|
|
+ if (size-sz > 0)
|
|
|
+ memset(ptr+sz, 0, size-sz);
|
|
|
if((hdr = hfree) == 0)
|
|
|
hdr = morehd();
|
|
|
hfree = (Blk *)hdr->rd;
|
|
@@ -2274,19 +2273,6 @@ lookwd(Blk *p)
|
|
|
return(*wp->rdw);
|
|
|
}
|
|
|
|
|
|
-char*
|
|
|
-nalloc(char *p, unsigned nbytes)
|
|
|
-{
|
|
|
- char *q, *r;
|
|
|
-
|
|
|
- q = r = malloc(nbytes);
|
|
|
- if(q==0)
|
|
|
- return(0);
|
|
|
- while(nbytes--)
|
|
|
- *q++ = *p++;
|
|
|
- return(r);
|
|
|
-}
|
|
|
-
|
|
|
int
|
|
|
getstk(void)
|
|
|
{
|