OSDN Git Service

終了処理のImageCacheDictionaryの後始末に無駄なコードパスがあったのを修正
authoranis774 <anis774@users.sourceforge.jp>
Fri, 10 Sep 2010 04:17:44 +0000 (04:17 +0000)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:15:21 +0000 (23:15 +0900)
git-svn-id: http://svn.sourceforge.jp/svnroot/tween/trunk@842 e39ad16e-3079-482e-bb30-4b4d378143b6

Tween/ImageCacheDictionary.vb
Tween/Tween.vb

index 723020a..6188122 100644 (file)
@@ -178,7 +178,12 @@ Public Class ImageCacheDictionary
         Public ReadOnly Property Image As Image
             Get
                 If Me.img Is Nothing Then
-                    Me.img = Image.FromFile(Me.tmpFilePath)
+                    Try
+                        Me.img = Image.FromFile(Me.tmpFilePath)
+                    Catch ex As OutOfMemoryException
+                        File.Copy(Me.tmpFilePath, Path.Combine(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory), "TweenCache"), Path.GetFileName(Me.tmpFilePath)))
+                        Throw ex
+                    End Try
                 End If
 
                 Return Me.img
index 5e798df..7fab3e8 100644 (file)
@@ -319,12 +319,6 @@ Public Class TweenMain
         fDialog.Dispose()
         UrlDialog.Dispose()
         _spaceKeyCanceler.Dispose()
-        If TIconDic IsNot Nothing AndAlso TIconDic.Keys.Count > 0 Then
-            For Each key As String In TIconDic.Keys
-                TIconDic(key).Dispose()
-            Next
-            TIconDic.Clear()
-        End If
         DirectCast(TIconDic, IDisposable).Dispose()
         If NIconAt IsNot Nothing Then NIconAt.Dispose()
         If NIconAtRed IsNot Nothing Then NIconAtRed.Dispose()
@@ -987,7 +981,7 @@ Public Class TweenMain
         End If
 
         'アイコンリスト作成
-        TIconDic = New ImageCacheDictionary(3000)
+        TIconDic = New ImageCacheDictionary(50)
 
         tw.DetailIcon = TIconDic