home bbs files messages ]

Just a sample of the Echomail archive

<< oldest | < older | list | newer > | newest >> ]

 Message 73 
 Marco van de Voort to All 
 Re: FPC - trying again :( 
 13 Jan 12 09:22:01 
 
09:22:01 GMT)
lang.pascal.borland:501
From: Marco van de Voort 

On 2012-01-12, Adrian Devries  wrote:
> I've managed to compile your sources with both VirtualPascal and
> FreePascal.

I've succeeded also, but the program crashed. It seems the program assumes
that variables are in sequence in the datasegment, and it uses pointers to
poke into them. Most notably triples of pointers (xxx_nxt, xxx_top, xxx_ptr)

It seems that with the current FPC versions that (wrong) assumption doesn't
apply any more.

The symptom was that lift_top was NIL after readfile, because that pointer
was updated via the above mechanism.

A possible solution would be to enforce grouping with e.g. the following
trick

type PWhateverPointer=pchar;

Type
    THetPointerRecord = packed record
                          nxt,
                          top,
                          _ptr  : PWhateverPointer;
                        end;


const 
     list_dummy :THetPointerRecord = (nxt:nil;top:nil;_ptr:nil);

var
     list_nxt : PWhateverPointer absolute list_dummy.nxt;
     list_top : PWhateverPointer absolute list_dummy.top;
     list_ptr : PWhateverPointer absolute list_dummy._ptr;



--- Internet Rex 2.31
 * Origin: The gateway at Omicron Theta (1:261/20.999)

<< oldest | < older | list | newer > | newest >> ]

(c) 1994,  bbs@darkrealms.ca