|
|
Line 1: |
Line 1: |
− | The 4.0.17 package on sourceforge contains some memleaks. For one, I had to fix the lcl, see [http://www.freepascal.org/cgi-bin/viewcvs.cgi/projects/lazarus/lcl/include/imglist.inc?r1=1.41&r2=1.42 cvs-log].
| |
| | | |
− | Below is a patch for virtualtrees.pas.
| |
− | <pre>
| |
− | --- D:\lazarus\projects\Virtualtrees-4.0.17\VirtualTrees.pas Tue Apr 26 22:54:48 2005
| |
− | +++ D:\lazarus\projects\Virtualtrees\VirtualTrees.pas Mon May 09 11:04:46 2005
| |
− | @@ -3840,7 +3840,6 @@
| |
− | try
| |
− | // Since we want the image list appearing in the correct system colors, we have to remap its colors.
| |
− | Images := TBitmap.Create;
| |
− | - OneImage := TBitmap.Create;
| |
− | //todo if ColorRemapping then
| |
− | // Images.Handle := CreateMappedRes(FindClassHInstance(TBaseVirtualTree), PChar(ImageName), Grays, SysGrays)
| |
− | // else
| |
− | @@ -3853,20 +3852,20 @@
| |
− | IL.Clear;
| |
− | IL.Height := Images.Height;
| |
− | IL.Width := Images.Height;
| |
− | - OneImage.Width := IL.Width;
| |
− | - OneImage.Height := IL.Height;
| |
− | MaskColor := clFuchsia;
| |
− | //later: bug in gtk MaskColor := Images.Canvas.Pixels[0, 0]; // this is usually clFuchsia
| |
− | Dest := Rect(0, 0, IL.Width, IL.Height);
| |
− | - for I := 0 to (Images.Width div Images.Height) - 1 do
| |
− | + for I := 0 to (Images.Width div Images.Height) - 1 do
| |
− | begin
| |
− | + OneImage := TBitmap.Create;
| |
− | + OneImage.Width := IL.Width;
| |
− | + OneImage.Height := IL.Height;
| |
− | Source := Rect(I * IL.Width, 0, (I + 1) * IL.Width, IL.Height);
| |
− | OneImage.Canvas.CopyRect(Dest, Images.Canvas, Source);
| |
− | IL.AddMasked(OneImage, MaskColor);
| |
− | end;
| |
− | finally
| |
− | Images.Free;
| |
− | - OneImage.Free;
| |
− | end;
| |
− | finally
| |
− | Watcher.Leave;
| |
− | @@ -3958,7 +3957,7 @@
| |
− | I, Width, Height: Integer;*)
| |
− |
| |
− | begin
| |
− | - // don't use system image set, since not very system has this.
| |
− | + // don't use system image set, since not every system has this.
| |
− | if Flat then
| |
− | IL := FlatImages
| |
− | else
| |
− | @@ -4148,7 +4147,7 @@
| |
− | var
| |
− | HintWasEnabled: Boolean;
| |
− |
| |
− | -begin exit;
| |
− | +begin
| |
− | //mm timeEndPeriod(MinimumTimerInterval);
| |
− |
| |
− | LightCheckImages.Free;
| |
− | @@ -4158,8 +4157,10 @@
| |
− | FlatImages.Free;
| |
− | XPImages.Free;
| |
− | UtilityImages.Free;
| |
− | +{$IFNDEF LCL} // System images are not used.
| |
− | SystemCheckImages.Free;
| |
− | SystemFlatCheckImages.Free;
| |
− | +{$ENDIF}
| |
− |
| |
− | //x if NeedToUnitialize then
| |
− | //x OleUninitialize;
| |
− | @@ -4198,7 +4199,7 @@
| |
− |
| |
− | procedure ReleaseThreadReference(Tree: TBaseVirtualTree);
| |
− |
| |
− | -begin exit;
| |
− | +begin
| |
− | if Assigned(WorkerThread) then
| |
− | begin
| |
− | Dec(WorkerThread.FRefCount);
| |
− | @@ -4237,7 +4238,7 @@
| |
− |
| |
− | constructor TWorkerThread.Create(CreateSuspended: Boolean);
| |
− |
| |
− | -begin exit;
| |
− | +begin
| |
− | inherited Create(CreateSuspended);
| |
− | FChangeLock := TCriticalSection.Create;
| |
− | FWaiterList := TThreadList.Create;
| |
− | @@ -4247,7 +4248,7 @@
| |
− |
| |
− | destructor TWorkerThread.Destroy;
| |
− |
| |
− | -begin exit;
| |
− | +begin
| |
− | FWaiterList.Free;
| |
− | FChangeLock.Free;
| |
− | inherited;
| |
− | @@ -4375,7 +4376,7 @@
| |
− |
| |
− | procedure TWorkerThread.RemoveTree(Tree: TBaseVirtualTree);
| |
− |
| |
− | -begin exit;
| |
− | +begin
| |
− | Assert(Assigned(Tree), 'Tree must not be nil.');
| |
− |
| |
− | with FWaiterList.LockList do
| |
− | </pre>
| |
− |
| |
− | == Is there any development progress? ==
| |
− |
| |
− | I'm testing vtv port and I see several bugs. For example, the header properties are not being saved in lfm, columns alignment (taRightJustify) is not working properly.
| |
− |
| |
− | == YES ==
| |
− |
| |
− | http://avl.ath.cx/mantis/ is the Bugtracker please add all bugs you find there.
| |
− | the memleaks schould be fixed since some time.
| |