@@ -578,31 +578,35 @@ LispPTR reclaimstackp(LispPTR ptr) /* This is the entry function */
578578/************************************************************************/
579579
580580void 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