diff --git a/rtl/inc/generic.inc b/rtl/inc/generic.inc index a9f0264667..88c15fe6c1 100644 --- a/rtl/inc/generic.inc +++ b/rtl/inc/generic.inc @@ -369,8 +369,6 @@ type size,msize : longint; parent : pointer; end; -var - objectsize : longint; begin if (_self=nil) then exit; @@ -379,10 +377,9 @@ begin RunError(210); if (_vmt = nil) then exit; - objectsize:=pvmt(_vmt)^.size; { reset vmt to nil for protection } ppointer(_self+vmt_pos)^:=nil; - freemem(_self,objectsize); + freemem(_self); end; {$endif FPC_SYSTEM_HAS_FPC_HELP_DESTRUCTOR} @@ -447,7 +444,7 @@ end; {$ifndef FPC_SYSTEM_HAS_FPC_CHECK_OBJECT} -procedure fpc_check_object(obj : pointer);[public,alias:'FPC_CHECK_OBJECT']; {$ifdef hascompilerproc} compilerproc; {$endif} +procedure fpc_check_object(_vmt : pointer);saveregisters;[public,alias:'FPC_CHECK_OBJECT']; {$ifdef hascompilerproc} compilerproc; {$endif} type pvmt = ^tvmt; tvmt = packed record @@ -455,10 +452,10 @@ type parent : pointer; end; begin -(* if (vmt=nil) or - (pvmt(vmt)^.size=0) or - (pvmt(vmt)^.size+pvmt(vmt)^.msize<>0) then - RunError(210);*) + if (_vmt=nil) or + (pvmt(_vmt)^.size=0) or + (pvmt(_vmt)^.size+pvmt(_vmt)^.msize<>0) then + RunError(210); end; {$endif ndef FPC_SYSTEM_HAS_FPC_CHECK_OBJECT} @@ -468,7 +465,7 @@ end; { checks for a correct vmt pointer } { deeper check to see if the current object is } { really related to the true } -procedure fpc_check_object_ext(vmt, expvmt : pointer);[public,alias:'FPC_CHECK_OBJECT_EXT']; {$ifdef hascompilerproc} compilerproc; {$endif} +procedure fpc_check_object_ext(vmt, expvmt : pointer);saveregisters;[public,alias:'FPC_CHECK_OBJECT_EXT']; {$ifdef hascompilerproc} compilerproc; {$endif} type pvmt = ^tvmt; tvmt = packed record @@ -962,7 +959,12 @@ end; { $Log$ - Revision 1.53 2003-04-02 14:05:45 peter + Revision 1.54 2003-04-23 13:10:09 peter + * remvoe objectsize loading from help_destructor + * implement fpc_check_object + * saveregistrers for check_object + + Revision 1.53 2003/04/02 14:05:45 peter * undo previous commit Revision 1.51 2003/03/26 00:17:34 peter