* conditionnal code for extended check of virtual methods

This commit is contained in:
pierre 1999-02-03 10:18:14 +00:00
parent c18fdf95f3
commit b186605bc4

View File

@ -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