- add fix for leaking asset memory with opened projects

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8985 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
nor..67 13 years ago
parent fbf42ffbca
commit a1e36ebd98
  1. 4
      sdk/jme3-core/src/com/jme3/gde/core/assets/AssetData.java
  2. 4
      sdk/jme3-core/src/com/jme3/gde/core/assets/AssetDataObject.java
  3. 5
      sdk/jme3-core/src/com/jme3/gde/core/scene/SceneApplication.java

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

@ -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);

@ -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() {

Loading…
Cancel
Save