Browse Source

* remvoe objectsize loading from help_destructor
* implement fpc_check_object
* saveregistrers for check_object

peter 22 years ago
parent
commit
f272c18e94
1 changed files with 13 additions and 11 deletions
  1. 13 11
      rtl/inc/generic.inc

+ 13 - 11
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