|
@@ -840,11 +840,20 @@ implementation
|
|
|
if p^.procdefinition^.extnumber=-1 then
|
|
|
internalerror($Da);
|
|
|
r^.offset:=p^.procdefinition^.extnumber*4+12;
|
|
|
+{$ifndef TESTOBJEXT}
|
|
|
if (cs_check_range in aktlocalswitches) then
|
|
|
begin
|
|
|
exprasmlist^.concat(new(pai386,op_reg(A_PUSH,S_L,r^.base)));
|
|
|
emitcall('FPC_CHECK_OBJECT',true);
|
|
|
end;
|
|
|
+{$else TESTOBJEXT}
|
|
|
+ if (cs_check_range in aktlocalswitches) then
|
|
|
+ begin
|
|
|
+ exprasmlist^.concat(new(pai386,op_csymbol(A_PUSH,S_L,newcsymbol(p^.procdefinition^._class^.vmt_mangledname,0))));
|
|
|
+ exprasmlist^.concat(new(pai386,op_reg(A_PUSH,S_L,r^.base)));
|
|
|
+ emitcall('FPC_CHECK_OBJECT_EXT',true);
|
|
|
+ end;
|
|
|
+{$endif TESTOBJEXT}
|
|
|
exprasmlist^.concat(new(pai386,op_ref(A_CALL,S_NO,r)));
|
|
|
end
|
|
|
else if not inlined then
|
|
@@ -1282,7 +1291,10 @@ implementation
|
|
|
end.
|
|
|
{
|
|
|
$Log$
|
|
|
- Revision 1.62 1999-02-02 23:52:32 florian
|
|
|
+ Revision 1.63 1999-02-03 10:18:14 pierre
|
|
|
+ * conditionnal code for extended check of virtual methods
|
|
|
+
|
|
|
+ Revision 1.62 1999/02/02 23:52:32 florian
|
|
|
* problem with calls to method pointers in methods fixed
|
|
|
- double ansistrings temp management removed
|
|
|
|