Browse Source

Memory leak

(Init was called twice for TTBXDarkOfficeXPTheme, causing FinalizeStock not to be called as CounterLock was > 1)

Source commit: d4145707fd143734f055a88da8bccff8ba0e915e
Martin Prikryl 6 years ago
parent
commit
acf91ab501
1 changed files with 9 additions and 5 deletions
  1. 9 5
      source/packages/tbx/TBXOfficeXPTheme.pas

+ 9 - 5
source/packages/tbx/TBXOfficeXPTheme.pas

@@ -51,8 +51,9 @@ type
     function GetBtnColor(const ItemInfo: TTBXItemInfo; ItemPart: TItemPart): TColor;
     function GetStandardColor(Color: TColor): TColor;
     procedure Init;
+    constructor CreateEx(const AName: string; Dark: Boolean); overload;
   public
-    constructor Create(const AName: string); override;
+    constructor Create(const AName: string); overload; override;
     destructor Destroy; override;
 
     { Metrics access}
@@ -1391,9 +1392,14 @@ begin
 end;
 
 constructor TTBXOfficeXPTheme.Create(const AName: string);
+begin
+  CreateEx(AName, False);
+end;
+
+constructor TTBXOfficeXPTheme.CreateEx(const AName: string; Dark: Boolean);
 begin
   inherited;
-  FDark := False;
+  FDark := Dark;
   Init;
 end;
 
@@ -1494,9 +1500,7 @@ end;
 
 constructor TTBXDarkOfficeXPTheme.Create(const AName: string);
 begin
-  inherited;
-  FDark := True;
-  Init;
+  inherited CreateEx(AName, True);
 end;
 
 end.