Skip to content

Commit 3fad090

Browse files
committed
Cleans up printarrayblock implementation
Uses consistent naming (_np) for native pointer equivalents of Lisp addresses
1 parent 812e296 commit 3fad090

File tree

1 file changed

+21
-17
lines changed

1 file changed

+21
-17
lines changed

src/gcfinal.c

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -578,31 +578,35 @@ LispPTR reclaimstackp(LispPTR ptr) /* This is the entry function */
578578
/************************************************************************/
579579

580580
void printarrayblock(LispPTR base) {
581-
struct arrayblock *bbase, *btrailer, *ptrailer;
581+
struct arrayblock *base_np, *trailer_np, *ptrailer_np;
582582
LispPTR *addr;
583-
584583
LispPTR pbase, nbase;
585584

586-
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
587-
btrailer = (struct arrayblock *)NativeAligned4FromLAddr(Trailer(base, bbase));
588-
ptrailer = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
585+
base_np = (struct arrayblock *)NativeAligned4FromLAddr(base);
586+
trailer_np = (struct arrayblock *)NativeAligned4FromLAddr(Trailer(base, base_np));
587+
ptrailer_np = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
589588

590-
nbase = base + DLWORDSPER_CELL * bbase->arlen;
591-
pbase = base - DLWORDSPER_CELL * ptrailer->arlen;
589+
nbase = base + DLWORDSPER_CELL * base_np->arlen;
590+
pbase = base - DLWORDSPER_CELL * ptrailer_np->arlen;
592591

593592
printf("This array block: 0x%x. Previous: 0x%x. Next: 0x%x.\n", base, pbase, nbase);
594-
printf(" Length: %d cells.\n\n", bbase->arlen);
595-
596-
addr = ((LispPTR *)bbase) - 20;
597-
for (; addr < (LispPTR *)bbase; addr++) printf("%16p %8x\n", (void *)addr, *addr);
598-
printf("%16p %8x <- array header\n", (void *)addr, *addr);
593+
printf(" password: 0x%x gctype: 0x%x in use: %d\n", base_np->password,
594+
base_np->gctype, base_np->inuse);
595+
if (!base_np->inuse)
596+
printf(" Free list: fwd 0x%x bkwd 0x%x\n", base_np->fwd, base_np->bkwd);
597+
printf(" Header Length: %d cells.\n\n", base_np->arlen);
598+
printf(" Trailer Length: %d cells.\n\n", trailer_np->arlen);
599+
600+
addr = ((LispPTR *)base_np) - 20;
601+
for (; addr < (LispPTR *)base_np; addr++) printf("%16p (0x%8x) %8x\n", (void *)addr, LAddrFromNative(addr), *addr);
602+
printf("%16p (0x%8x) %8x <- array header\n", (void *)addr, LAddrFromNative(addr), *addr);
599603
addr++;
600-
for (; addr < (LispPTR *)bbase + 20; addr++) printf("%16p %8x\n", (void *)addr, *addr);
604+
for (; addr < (LispPTR *)base_np + 20; addr++) printf("%16p (0x%8x) %8x\n", (void *)addr, LAddrFromNative(addr), *addr);
601605
printf(". . .\n");
602606

603-
addr = ((LispPTR *)btrailer) - 20;
604-
for (; addr < (LispPTR *)btrailer; addr++) printf("%16p %8x\n", (void *)addr, *addr);
605-
printf("%16p %8x <- array trailer\n", (void *)addr, *addr);
607+
addr = ((LispPTR *)trailer_np) - 20;
608+
for (; addr < (LispPTR *)trailer_np; addr++) printf("%16p (0x%8x) %8x\n", (void *)addr, LAddrFromNative(addr), *addr);
609+
printf("%16p (0x%8x) %8x <- array trailer\n", (void *)addr, LAddrFromNative(addr), *addr);
606610
addr++;
607-
for (; addr < (LispPTR *)btrailer + 20; addr++) printf("%16p %8x\n", (void *)addr, *addr);
611+
for (; addr < (LispPTR *)trailer_np + 20; addr++) printf("%16p (0x%8x) %8x\n", (void *)addr, LAddrFromNative(addr), *addr);
608612
}

0 commit comments

Comments
 (0)