2
0
Эх сурвалжийг харах

SDK:
- add fix for leaking asset memory with opened projects

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8985 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

nor..67 13 жил өмнө
parent
commit
6c1d8fbfe6

+ 4 - 0
jme3-core/src/com/jme3/gde/core/assets/AssetData.java

@@ -79,6 +79,10 @@ public class AssetData extends Properties {
         file.saveAsset();
     }
     
+    public void closeAsset(){
+        file.closeAsset();
+    }
+    
     public List<FileObject> getAssetList(){
         return file.getAssetList();
     }

+ 4 - 0
jme3-core/src/com/jme3/gde/core/assets/AssetDataObject.java

@@ -227,6 +227,10 @@ public class AssetDataObject extends MultiDataObject {
         setModified(false);
     }
 
+    public synchronized void closeAsset() {
+        savable = null;
+    }
+
     public synchronized AssetKey<?> getAssetKey() {
         if (assetKey == null) {
             ProjectAssetManager mgr = getLookup().lookup(ProjectAssetManager.class);

+ 5 - 0
jme3-core/src/com/jme3/gde/core/scene/SceneApplication.java

@@ -31,6 +31,7 @@ import com.jme3.font.BitmapFont;
 import com.jme3.font.BitmapText;
 import com.jme3.gde.core.Installer;
 import com.jme3.gde.core.assets.AssetData;
+import com.jme3.gde.core.assets.AssetDataObject;
 import com.jme3.gde.core.scene.controller.AbstractCameraController;
 import com.jme3.gde.core.scene.processors.WireProcessor;
 import com.jme3.gde.core.sceneviewer.SceneViewerTopComponent;
@@ -455,6 +456,10 @@ public class SceneApplication extends Application implements LookupProvider {
                 req.setModified(false);
             }
         }
+        if ((request != null) && (request.getDataObject()instanceof AssetDataObject)){
+            AssetDataObject obj = (AssetDataObject) request.getDataObject();
+            obj.closeAsset();
+        }
     }
 
     private void resetCam() {