FpDebug: fixed wrong type-cast in TFpValueDwarfArray.DoGetOrdering, TFpValueDwarfFreePascalArray, GetInstanceClassNameFromPVmt

git-svn-id: trunk@63359 -
This commit is contained in:
martin 2020-06-16 13:42:44 +00:00
parent a43e155cdb
commit 8a702248e3
2 changed files with 10 additions and 5 deletions

View File

@ -2810,8 +2810,13 @@ begin
end;
function TFpValueDwarfArray.DoGetOrdering(out ARowMajor: Boolean): Boolean;
var
ti: TFpSymbolDwarfType;
begin
Result := TFpSymbolDwarfTypeArray(TypeInfo).DoReadOrdering(Self, ARowMajor);
ti := TypeInfo;
while ti is TFpSymbolDwarfTypeModifierBase do
ti := ti.NestedTypeInfo;
Result := TFpSymbolDwarfTypeArray(ti).DoReadOrdering(Self, ARowMajor);
end;
function TFpValueDwarfArray.DoGetStride(out AStride: TFpDbgValueSize): Boolean;

View File

@ -328,7 +328,7 @@ begin
for i := 0 to TFpDwarfInfo(ADbgInfo).CompilationUnitsCount - 1 do
if TFpDwarfInfo(ADbgInfo).CompilationUnits[i].DwarfSymbolClassMap is TFpDwarfFreePascalSymbolClassMap
then begin
FoundMap := TFpDwarfFreePascalSymbolClassMap(TFpDwarfInfo(ADbgInfo).CompilationUnits[i]);
FoundMap := TFpDwarfFreePascalSymbolClassMap(TFpDwarfInfo(ADbgInfo).CompilationUnits[i].DwarfSymbolClassMap);
end;
Result := FoundMap;
@ -1049,7 +1049,7 @@ end;
function TFpValueDwarfFreePascalArray.DoGetStride(out AStride: TFpDbgValueSize
): Boolean;
begin
if (TFpDwarfFreePascalSymbolClassMapDwarf3(TypeInfo.CompilationUnit.DwarfSymbolClassMap).FCompilerVersion >= $030300)
if (TFpDwarfFreePascalSymbolClassMap(TypeInfo.CompilationUnit.DwarfSymbolClassMap).FCompilerVersion >= $030300)
then
Result := inherited DoGetStride(AStride)
else
@ -1059,7 +1059,7 @@ end;
function TFpValueDwarfFreePascalArray.DoGetMainStride(out
AStride: TFpDbgValueSize): Boolean;
begin
if (TFpDwarfFreePascalSymbolClassMapDwarf3(TypeInfo.CompilationUnit.DwarfSymbolClassMap).FCompilerVersion >= $030300)
if (TFpDwarfFreePascalSymbolClassMap(TypeInfo.CompilationUnit.DwarfSymbolClassMap).FCompilerVersion >= $030300)
then
Result := inherited DoGetMainStride(AStride)
else
@ -1069,7 +1069,7 @@ end;
function TFpValueDwarfFreePascalArray.DoGetDimStride(AnIndex: integer; out
AStride: TFpDbgValueSize): Boolean;
begin
if (TFpDwarfFreePascalSymbolClassMapDwarf3(TypeInfo.CompilationUnit.DwarfSymbolClassMap).FCompilerVersion >= $030300)
if (TFpDwarfFreePascalSymbolClassMap(TypeInfo.CompilationUnit.DwarfSymbolClassMap).FCompilerVersion >= $030300)
then
Result := inherited DoGetDimStride(AnIndex, AStride)
else