OSDN Git Service

#37002 古いフォーマットのCoordinates.xmlを読み込んだ際に例外が出ないよう修正。
authoryyagi <yyagi.dtxmania@gmail.com>
Wed, 22 Mar 2017 17:18:10 +0000 (02:18 +0900)
committeryyagi <yyagi.dtxmania@gmail.com>
Wed, 22 Mar 2017 17:18:10 +0000 (02:18 +0900)
#xxxxx GCの動作を若干変更。暫定対策だった、毎フレーム軽くbackgroundでGCを動作させる方法をやめ、従来通り画面遷移時にまとめてGCを実行する方法に戻した。

DTXManiaプロジェクト/コード/全体/CDTXMania.cs
実行時フォルダ/DTXManiaGR.exe

index b7a9cde..b1492f6 100644 (file)
@@ -1953,7 +1953,7 @@ namespace DTXMania
                        }\r
                        #endregion\r
 \r
-                       GC.Collect( 0, GCCollectionMode.Optimized, false );             // Rel105で処理が重くなっていることに対する、暫定処置。\r
+                       //GC.Collect( 0, GCCollectionMode.Optimized, false );           // Rel105で処理が重くなっていることに対する、暫定処置。\r
                                                                                                                                        // 重くなっている原因に対する適切な処置をして、処理が104程度に軽くなったら、\r
                                                                                                                                        // この暫定処置は削除します。\r
                }\r
@@ -2075,7 +2075,14 @@ namespace DTXMania
                                using (XmlReader xr = XmlReader.Create(coordXml))\r
                                {\r
                                        DataContractSerializer serializer = new DataContractSerializer(typeof(Coordinates.CCoordinates));\r
-                                       Coordinates = (Coordinates.CCoordinates)serializer.ReadObject(xr);\r
+                                       try\r
+                                       {\r
+                                               Coordinates = (Coordinates.CCoordinates) serializer.ReadObject( xr );\r
+                                       }\r
+                                       catch (SerializationException e)\r
+                                       {\r
+                                               Trace.TraceWarning( "Rel107以前の古いフォーマットのCoordinates.xmlが読み込まれました。無視します。" );\r
+                                       }\r
                                }\r
                        }\r
                        // シリアライズ\r
@@ -2607,9 +2614,9 @@ namespace DTXMania
                }\r
                private void tガベージコレクションを実行する()\r
                {\r
-                       GC.Collect();\r
+                       GC.Collect(0, GCCollectionMode.Optimized, true );\r
                        GC.WaitForPendingFinalizers();\r
-                       GC.Collect();\r
+                       GC.Collect(0, GCCollectionMode.Forced, true );\r
                        GC.WaitForPendingFinalizers();\r
                }\r
                private void tプラグイン検索と生成()\r
index 5a34183..3d9f623 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ