The program below causes a Segment Violation (SIGSEGV) during compilation using GPC-970510 for DJGPP 2.01. {-----------------------------------------------------------------------------} Type PEntry = ^TEntry; TEntry = Record Prev : PEntry; { Linked List } Data : Word; End; TObj = Object Index : PEntry; Procedure DisposeIndex; End; Procedure TObj.DisposeIndex; {$M START} Procedure DisposeEntry(Var Entry:PEntry); {$M STOP} Begin If (Entry <> Nil) Then Begin DisposeEntry(Entry^.Prev); Dispose(Entry); Entry := Nil; End; End; Begin DisposeEntry(Index); End; Begin End. {-----------------------------------------------------------------------------} The problem does not occur if the procedure "DisposeIndex" is NOT a method of an object. If "DisposeIndex" is declared as a normal procedure then the program compiles OK. WEIRD!?!? I narrowed the problem down to the definition of the nested procedure "DisposeEntry". The second {$M} is never displayed. Tschuess ________________________ | _) | | e-mail: bernie@icenet.com.au |___)ernhard |_|schirren ptschirrenb@cc.curtin.edu.au www: www.geocities.com/CollegePark/Quad/8070/
participants (1)
-
Bernhard Tschirren