[Oberon] PO2013 - Show Heap Blocks

Joerg joerg.straube at iaeth.ch
Tue Jun 23 15:22:12 CEST 2020


> PROCEDURE GetBlock32(VAR p: LONGINT);
>   CONST nil = 0;
>   VAR q: LONGINT;
> BEGIN
>   IF list3 # nil THEN p := list3; (*next*) SYSTEM.GET(list3+8, list3)
>   ELSE GetBlock64(q); (*list3 := nil*) SYSTEM.PUT(q+40, nil) END
> END GetBlock32;
> 
> What I see happening is, IF list3 # NIL THEN (*next*) list3 := tag (*of a used record*)

No. Your understanding is not correct.
Look at the TYPE declaration in my previous mail and look again at the code.

Jörg



More information about the Oberon mailing list