Debugger: Fix mem leak in disassembler

git-svn-id: trunk@43329 -
This commit is contained in:
martin 2013-10-27 13:47:25 +00:00
parent 02a1939e74
commit 69885cfba0

View File

@ -2101,7 +2101,7 @@ type
constructor Create(AIdType: TMapIdType; ADataSize: Cardinal); constructor Create(AIdType: TMapIdType; ADataSize: Cardinal);
destructor Destroy; override; destructor Destroy; override;
// AddRange, may destroy the object // AddRange, may destroy the object
procedure AddRange(const ARange: TDBGDisassemblerEntryRange); procedure AddRange(const ARange: TDBGDisassemblerEntryRange); // Arange may be freed
function GetRangeForAddr(AnAddr: TDbgPtr; IncludeNextAddr: Boolean = False): TDBGDisassemblerEntryRange; function GetRangeForAddr(AnAddr: TDbgPtr; IncludeNextAddr: Boolean = False): TDBGDisassemblerEntryRange;
property OnDelete: TNotifyEvent read FOnDelete write FOnDelete; property OnDelete: TNotifyEvent read FOnDelete write FOnDelete;
property OnMerge: TDBGDisassemblerEntryMapMergeEvent property OnMerge: TDBGDisassemblerEntryMapMergeEvent
@ -11008,7 +11008,10 @@ var
OldId: TDBGPtr; OldId: TDBGPtr;
begin begin
debugln(DBG_DISASSEMBLER, ['INFO: TDBGDisassemblerEntryMap.AddRange ', dbgs(ARange), ' to map with count=', Count ]); debugln(DBG_DISASSEMBLER, ['INFO: TDBGDisassemblerEntryMap.AddRange ', dbgs(ARange), ' to map with count=', Count ]);
if ARange.Count = 0 then exit; if ARange.Count = 0 then begin
ARange.Free;
exit;
end;
MergeRng := GetRangeForAddr(ARange.RangeStartAddr, True); MergeRng := GetRangeForAddr(ARange.RangeStartAddr, True);
if MergeRng <> nil then begin if MergeRng <> nil then begin