On Fri, Nov 21, 2014 at 10:33 PM, Mattias Gaertner <nc-gaert...@netcologne.de> wrote: > On Fri, 21 Nov 2014 23:51:13 +0100 > Mattias Gaertner <nc-gaert...@netcologne.de> wrote: > (...) > Without the AVs you can see the mem leaks. I fixed the three mem leaks.
Here's a patch to change the Append method, just in case ;-) Best regards, Flávio
diff --git a/components/debuggerintf/dbgintfdebuggerbase.pp b/components/debuggerintf/dbgintfdebuggerbase.pp index 146ba74..261d95a 100644 --- a/components/debuggerintf/dbgintfdebuggerbase.pp +++ b/components/debuggerintf/dbgintfdebuggerbase.pp @@ -1240,7 +1240,7 @@ type procedure SetCount(const AValue: Integer); public procedure Clear; - function Append(const AnEntryPtr: PDisassemblerEntry): Integer; + function Append(const AnEntry: TDisassemblerEntry): Integer; procedure Merge(const AnotherRange: TDBGDisassemblerEntryRange); // Actual addresses on the ranges function FirstAddr: TDbgPtr; @@ -4706,12 +4706,13 @@ begin FCount := 0; end; -function TDBGDisassemblerEntryRange.Append(const AnEntryPtr: PDisassemblerEntry): Integer; +function TDBGDisassemblerEntryRange.Append(const AnEntry: TDisassemblerEntry + ): Integer; begin if FCount >= Capacity then Capacity := FCount + Max(20,FCount div 4); - FEntries[FCount] := AnEntryPtr^; + FEntries[FCount] := AnEntry; Result := FCount; inc(FCount); end; diff --git a/components/lazdebuggergdbmi/gdbmidebugger.pp b/components/lazdebuggergdbmi/gdbmidebugger.pp index 5f4df11..5d61759 100644 --- a/components/lazdebuggergdbmi/gdbmidebugger.pp +++ b/components/lazdebuggergdbmi/gdbmidebugger.pp @@ -4042,7 +4042,7 @@ function TGDBMIDebuggerCommandDisassemble.DoExecute: Boolean; if (ItmPtr^.FuncName = LastItem^.FuncName) then ItmPtr^.FuncName:= LastItem^.FuncName; end; - ADestRange.Append(ItmPtr); + ADestRange.Append(ItmPtr^); // now we can move the data, pointed to by ItmPtr // reduce search range if ItmPtr2 <> nil then begin @@ -4388,7 +4388,7 @@ function TGDBMIDebuggerCommandDisassemble.DoExecute: Boolean; Itm.SrcFileLine := 0; Itm.Offset := 0; itm.Statement := '<error>'; - NewRange.Append(@Itm); + NewRange.Append(Itm); FKnownRanges.AddRange(NewRange); // NewRange is now owned by FKnownRanges NewRange := nil; FreeAndNil(DisAssList); diff --git a/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas b/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas index 6a23801..5706864 100644 --- a/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas +++ b/components/lazdebuggers/lazdebuggerfp/fpdebugdebugger.pas @@ -804,7 +804,7 @@ begin AnEntry.SrcFileLine:=ASrcFileLine; AnEntry.SrcFileName:=ASrcFileName; AnEntry.SrcStatementIndex:=StatIndex; - ARange.Append(@AnEntry); + ARange.Append(AnEntry); ALastAddr:=AnAddr; inc(StatIndex); Inc(AnAddr, {%H-}PtrUInt(p) - {%H-}PtrUInt(@CodeBin));
-- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus