|
@@ -932,6 +932,10 @@ implementation
|
|
else
|
|
else
|
|
rawdata.concat(Tai_string.Create(curintf.iidstr^));
|
|
rawdata.concat(Tai_string.Create(curintf.iidstr^));
|
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(tmplabel));
|
|
current_asmdata.asmlists[al_globals].concat(Tai_const.Create_sym(tmplabel));
|
|
|
|
+ { EntryType }
|
|
|
|
+ current_asmdata.asmlists[al_globals].concat(Tai_const.Create_aint(integer(curintf.iitype)));
|
|
|
|
+ { EntryOffset }
|
|
|
|
+ current_asmdata.asmlists[al_globals].concat(Tai_const.Create_aint(integer(curintf.iioffset)));
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
|
|
@@ -1139,7 +1143,8 @@ implementation
|
|
if assigned(implprocdef) then
|
|
if assigned(implprocdef) then
|
|
_class.implementedinterfaces.addimplproc(intfindex,implprocdef)
|
|
_class.implementedinterfaces.addimplproc(intfindex,implprocdef)
|
|
else
|
|
else
|
|
- Message1(sym_e_no_matching_implementation_found,tprocdef(def).fullprocname(false));
|
|
|
|
|
|
+ if _class.implementedinterfaces.interfaces(intfindex).iitype = etStandard then
|
|
|
|
+ Message1(sym_e_no_matching_implementation_found,tprocdef(def).fullprocname(false));
|
|
end;
|
|
end;
|
|
def:=tdef(def.indexnext);
|
|
def:=tdef(def.indexnext);
|
|
end;
|
|
end;
|
|
@@ -1209,11 +1214,10 @@ implementation
|
|
vmtentry : pvmtentry;
|
|
vmtentry : pvmtentry;
|
|
procdefcoll : pprocdefcoll;
|
|
procdefcoll : pprocdefcoll;
|
|
i : longint;
|
|
i : longint;
|
|
- procname
|
|
|
|
|
|
+ procname : string;
|
|
{$ifdef vtentry}
|
|
{$ifdef vtentry}
|
|
- , hs
|
|
|
|
|
|
+ hs : string;
|
|
{$endif vtentry}
|
|
{$endif vtentry}
|
|
- : string;
|
|
|
|
begin
|
|
begin
|
|
{ walk trough all numbers for virtual methods and search }
|
|
{ walk trough all numbers for virtual methods and search }
|
|
{ the method }
|
|
{ the method }
|