|
@@ -67,7 +67,7 @@ type
|
|
PMethodNameRec = ^TMethodNameRec;
|
|
PMethodNameRec = ^TMethodNameRec;
|
|
TMethodNameRec = packed record
|
|
TMethodNameRec = packed record
|
|
name : pshortstring;
|
|
name : pshortstring;
|
|
- addr : pointer;
|
|
|
|
|
|
+ addr : codepointer;
|
|
end;
|
|
end;
|
|
|
|
|
|
TMethodNameTable = packed record
|
|
TMethodNameTable = packed record
|
|
@@ -80,15 +80,15 @@ type
|
|
var
|
|
var
|
|
methodTable : pMethodNameTable;
|
|
methodTable : pMethodNameTable;
|
|
i : dword;
|
|
i : dword;
|
|
- vmt: TClass;
|
|
|
|
|
|
+ vmt: PVmt;
|
|
idx: integer;
|
|
idx: integer;
|
|
pmr: PMethodNameRec;
|
|
pmr: PMethodNameRec;
|
|
begin
|
|
begin
|
|
AList.Clear;
|
|
AList.Clear;
|
|
- vmt := aClass;
|
|
|
|
|
|
+ vmt := PVmt(aClass);
|
|
while assigned(vmt) do
|
|
while assigned(vmt) do
|
|
begin
|
|
begin
|
|
- methodTable := pMethodNameTable((Pointer(vmt) + vmtMethodTable)^);
|
|
|
|
|
|
+ methodTable := pMethodNameTable(vmt^.vMethodTable);
|
|
if assigned(MethodTable) then
|
|
if assigned(MethodTable) then
|
|
begin
|
|
begin
|
|
pmr := @methodTable^.entries[0];
|
|
pmr := @methodTable^.entries[0];
|
|
@@ -102,7 +102,7 @@ begin
|
|
Inc(pmr);
|
|
Inc(pmr);
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
- vmt := pClass(pointer(vmt) + vmtParent)^;
|
|
|
|
|
|
+ vmt := vmt^.vParent;
|
|
end;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
|