mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 06:19:19 +02:00
Correctly handle subclasses, patch by Henrique Werlang (issue #39195)
git-svn-id: trunk@49589 -
(cherry picked from commit c7690907e7
)
This commit is contained in:
parent
b7b09276a4
commit
6c78bb2b71
@ -433,9 +433,26 @@ procedure TPasWriter.WriteDummyExternalFunctions(aSection : TPasSection);
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure DoCheckClass(C: TPasClassType; Force : Boolean; Prefix: String);
|
||||||
|
var
|
||||||
|
I: Integer;
|
||||||
|
M : TPasElement;
|
||||||
|
|
||||||
|
begin
|
||||||
|
if (C.ExternalName<>'') then
|
||||||
|
for I:=0 to C.Members.Count-1 do
|
||||||
|
begin
|
||||||
|
M:=TPasElement(C.members[I]);
|
||||||
|
if (M is TPasClassType) then
|
||||||
|
DoCheckClass(M as TPasClassType, Force, Prefix + C.SafeName + '.')
|
||||||
|
else
|
||||||
|
DoCheckElement(M, Force, Prefix + C.SafeName + '.');
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
Var
|
Var
|
||||||
I,J : Integer;
|
I : Integer;
|
||||||
E,M : TPasElement;
|
E : TPasElement;
|
||||||
C : TPasClassType;
|
C : TPasClassType;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
@ -447,15 +464,7 @@ begin
|
|||||||
E:=TPasElement(aSection.Declarations[i]);
|
E:=TPasElement(aSection.Declarations[i]);
|
||||||
DoCheckElement(E,False,'');
|
DoCheckElement(E,False,'');
|
||||||
if (E is TPasClassType) then
|
if (E is TPasClassType) then
|
||||||
begin
|
DoCheckClass(E as TPasClassType, True, '');
|
||||||
C:=E as TPasClassType;
|
|
||||||
if (C.ExternalName<>'') then
|
|
||||||
For J:=0 to C.Members.Count-1 do
|
|
||||||
begin
|
|
||||||
M:=TPasElement(C.members[J]);
|
|
||||||
DoCheckElement(M,True,C.SafeName+'.');
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
Addln;
|
Addln;
|
||||||
Addln('// end of dummy implementations');
|
Addln('// end of dummy implementations');
|
||||||
|
Loading…
Reference in New Issue
Block a user