mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-02 11:13:40 +02:00
* remvoe objectsize loading from help_destructor
* implement fpc_check_object * saveregistrers for check_object
This commit is contained in:
parent
86c4522697
commit
f272c18e94
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user