From b5f091d0cbbf182fe15503a916d3d4cbbdbaca70 Mon Sep 17 00:00:00 2001 From: florian Date: Fri, 11 Oct 2002 14:05:21 +0000 Subject: [PATCH] * initinterfacepointers improved --- rtl/inc/objpas.inc | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/rtl/inc/objpas.inc b/rtl/inc/objpas.inc index 5ff8285113..cea5bae9c0 100644 --- a/rtl/inc/objpas.inc +++ b/rtl/inc/objpas.inc @@ -167,13 +167,15 @@ intftable : pinterfacetable; i : longint; begin - if assigned(objclass.classparent) then - InitInterfacePointers(objclass.classparent,instance); - intftable:=objclass.getinterfacetable; - if assigned(intftable) then - for i:=0 to intftable^.EntryCount-1 do - ppointer(@(PChar(instance)[intftable^.Entries[i].IOffset]))^:= - pointer(intftable^.Entries[i].VTable); + while assigned(objclass) do + begin + intftable:=objclass.getinterfacetable; + if assigned(intftable) then + for i:=0 to intftable^.EntryCount-1 do + ppointer(@(PChar(instance)[intftable^.Entries[i].IOffset]))^:= + pointer(intftable^.Entries[i].VTable); + objclass:=objclass.classparent + end; end; {$else HASINTF} begin @@ -699,7 +701,10 @@ { $Log$ - Revision 1.27 2002-09-07 15:07:46 peter + Revision 1.28 2002-10-11 14:05:21 florian + * initinterfacepointers improved + + Revision 1.27 2002/09/07 15:07:46 peter * old logs removed and tabs fixed Revision 1.26 2002/09/07 11:08:58 carl @@ -708,4 +713,4 @@ Revision 1.25 2002/08/31 13:11:11 florian * several fixes for Linux/PPC compilation -} +} \ No newline at end of file