OSDN Git Service

Settingのメモリリーク修正。
authorh677 <h677>
Sun, 9 Sep 2007 07:11:58 +0000 (07:11 +0000)
committerh677 <h677>
Sun, 9 Sep 2007 07:11:58 +0000 (07:11 +0000)
NewBoardURLのメモリリーク修正。
ツールバーのFontがメモリリークする(?)っぽいので微妙な修正追加

Giko.pas
GikoSystem.pas
NewBoardURL.pas
Setting.pas
gikoNavi.dpr
gikoNavi.res

index e5c69fe..a0d9c23 100644 (file)
--- a/Giko.pas
+++ b/Giko.pas
@@ -1554,6 +1554,7 @@ var
 begin
        // \83}\83E\83X\83W\83F\83X\83`\83\83\81[\8aJ\95ú
        try
+        MouseGesture.Clear;
                MouseGesture.UnHook;
        except
        end;
@@ -1723,7 +1724,6 @@ begin
                if FEvent <> nil then
                        FEvent.Free;
 
-        // TODO \83\8c\83X\83|\83b\83v\83A\83b\83v\82Ì\94j\8aü
         try
             if FResPopupBrowser <> nil then  begin
                 TOleControl(FResPopupBrowser).Parent := nil;
@@ -1739,6 +1739,14 @@ begin
                end;
        except
        end;
+       try
+        MouseGesture.Free;
+       except
+       end;
+    try
+        DeleteObject(MainCoolBar.Font.Handle);
+    except
+    end;
        LockWindowUpdate(0);
 end;
 
@@ -2236,6 +2244,7 @@ var
        ARect: TRect;
 begin
        DefaultDraw := True;
+// \82È\82º\82©\96³\8fð\8c\8f\82ÅExit\82µ\82Ä\82¢\82é
        Exit;
        DefaultDraw := False;
        if (cdsSelected in State) or (cdsHot in State) then begin
@@ -4341,7 +4350,6 @@ begin
        MenuToolBar.Buttons[0].AutoSize := True;
        MainCoolBar.AutoSize := False;
        MainCoolBar.AutoSize := True;
-
        GikoSys.MenuFont(ListCoolBar.Font);
        GikoSys.MenuFont(BrowserCoolBar.Font);
 //     MenuToolBar.Font.Color := clMenuText;
index e1fa86e..a08b688 100644 (file)
@@ -344,18 +344,6 @@ var
        i: Integer;
        FileList: TStringList;
 begin
-       //\83X\83\8c\83b\83h\83f\81[\83^\83t\83@\83C\83\8b\82ð\8dX\90V
-//     FlashExitWrite;
-
-//     FExitWrite.Free;
-       FBayesian.Free;
-       FAWKStr.Free;
-       FSetting.Free;
-       FDolib.Free;
-       FAbon.Free;
-       FSelectResFilter.Free;
-    FGikoMessage.Free;
-       //FBoardURLList.Free;
        //\83e\83\93\83|\83\89\83\8aHTML\82ð\8dí\8f\9c
        FileList := TStringList.Create;
        try
@@ -368,6 +356,13 @@ begin
        finally
                FileList.Free;
        end;
+    FGikoMessage.Free;
+       FBayesian.Free;
+       FSelectResFilter.Free;
+       FAbon.Free;
+       FAWKStr.Free;
+       FDolib.Free;
+       FSetting.Free;
        inherited;
 end;
 
@@ -1346,15 +1341,11 @@ procedure TGikoSys.MenuFont(Font: TFont);
 var
        lf: LOGFONT;
        nm: NONCLIENTMETRICS;
-    fName: String;
 begin
        nm.cbSize := sizeof(NONCLIENTMETRICS);
     SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @nm, 0);
     lf := nm.lfMenuFont;
-    fName := lf.lfFaceName;
-    // \92¼\90Ú\8eQ\8fÆ\82³\82¹\82é\82Æ\83\81\83\82\83\8a\83\8a\81[\83N\82É\82È\82é\81H\91¼\82ÌCoolBar\82Æ\8e\9d\82¿\8d\87\82¤\81H
-    Font.Name := Copy(fname, 0, Length(fname));
-    Font.Height := lf.lfHeight;
+    Font.Handle := CreateFontIndirect(lf);
     Font.Style := [];
     if lf.lfWeight >= 700 then
         Font.Style := Font.Style + [fsBold];
index 010addd..480d3dc 100644 (file)
@@ -47,20 +47,32 @@ var
     sec : TStringList;
 begin
     sec := TStringList.Create;
-    ini := TMemIniFile.Create(GikoSys.GetBoardFileName);
-    ini.ReadSections(sec);
+    try
+        ini := TMemIniFile.Create(GikoSys.GetBoardFileName);
+        try
+            ini.ReadSections(sec);
 
-    CategoryComboBox.Clear;
-    CategoryComboBox.Items.BeginUpdate;
-    for i := 0 to sec.Count - 1 do begin
-        CategoryComboBox.Items.Add(sec[i]);
-    end;
-    CategoryComboBox.Items.EndUpdate;
-    CategoryComboBox.ItemIndex := 0;
+            CategoryComboBox.Clear;
+            CategoryComboBox.Items.BeginUpdate;
+            for i := 0 to sec.Count - 1 do begin
+                CategoryComboBox.Items.Add(sec[i]);
+            end;
+            CategoryComboBox.Items.EndUpdate;
+            CategoryComboBox.ItemIndex := 0;
 
-    ResultMemo.Lines.Clear;
+            ResultMemo.Lines.Clear;
+        finally
+            if ini <> nil then begin
+                ini.Free;
+            end;
+        end;
+    finally
+        if sec <> nil then begin
+            sec.Free;
+        end;
+    end;
 end;
-
+//! \83f\83X\83g\83\89\83N\83^
 procedure TNewBoardURLForm.SearchButtonClick(Sender: TObject);
 var
     i : Integer;
@@ -186,9 +198,13 @@ begin
         keys := TStringList.Create;
         try
             ini := TMemIniFile.Create(GikoSys.GetBoardFileName);
-            ini.ReadSection(sec, keys);
-            for i := 0 to keys.Count - 1 do begin
-                urls.Add(ini.ReadString(sec, keys[i], ''));
+            try
+                ini.ReadSection(sec, keys);
+                for i := 0 to keys.Count - 1 do begin
+                    urls.Add(ini.ReadString(sec, keys[i], ''));
+                end;
+            finally
+                ini.Free;
             end;
         finally
             keys.Free;
index e2e1589..147ff0d 100644 (file)
@@ -990,15 +990,16 @@ end;
 //\83f\83X\83g\83\89\83N\83^
 destructor TSetting.Destroy();
 begin
-       inherited;
+    FSkinFiles.Free;
+       FGestures.Free;
        FBoardColumnOrder.Free;
        FCategoryColumnOrder.Free;
        FBBSColumnOrder.Free;
-       FSelectTextList.Free;
        FBoardURLs.Free;
+       FSelectTextList.Free;
        FMailList.Free;
        FNameList.Free;
-       FGestures.Free;
+       inherited;
 end;
 
 //\8f\89\8aú\89»\83t\83@\83C\83\8b\96¼\8eæ\93¾\81i\83p\83X\81{\83t\83@\83C\83\8b\96¼\81j
index 3f256f1..de35f2a 100644 (file)
@@ -78,7 +78,8 @@ uses
   HistoryList in 'HistoryList.pas',
   ReplaceDataModule in 'ReplaceDataModule.pas' {ReplaceDM: TDataModule},
   ResPopupBrowser in 'ResPopupBrowser.pas',
-  SkinFiles in 'SkinFiles.pas';
+  SkinFiles in 'SkinFiles.pas',
+  NewBoardURL in 'NewBoardURL.pas' {NewBoardURLForm};
 
 {$R *.RES}
 {$R gikoResource.res}
index 59b21fd..ecc1ccb 100644 (file)
Binary files a/gikoNavi.res and b/gikoNavi.res differ