mirror of https://github.com/rusefi/RomRaider.git
Fix memory leak when closing/refreshing Rom images.
The static TableUpdateHandler was keeping a reference to all the tables, now those references are cleared when a Rom image is closed. git-svn-id: http://svn.3splooges.com/romraider-arch/trunk@669 d2e2e1cd-ba16-0410-be16-b7c4453c7c2d
This commit is contained in:
parent
62c7102249
commit
009c473c22
|
@ -39,6 +39,7 @@ import java.io.FileInputStream;
|
|||
import java.io.FileReader;
|
||||
import java.io.IOException;
|
||||
import java.util.Vector;
|
||||
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JCheckBox;
|
||||
import javax.swing.JFrame;
|
||||
|
@ -49,8 +50,14 @@ import javax.swing.JScrollPane;
|
|||
import javax.swing.JSplitPane;
|
||||
import javax.swing.JTextArea;
|
||||
import javax.swing.tree.TreePath;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.InputSource;
|
||||
|
||||
import com.sun.org.apache.xerces.internal.parsers.DOMParser;
|
||||
import com.sun.org.apache.xerces.internal.xni.parser.XMLParseException;
|
||||
|
||||
import enginuity.logger.ecu.ui.handler.table.TableUpdateHandler;
|
||||
import enginuity.maps.Rom;
|
||||
import enginuity.maps.Table;
|
||||
import enginuity.net.URL;
|
||||
|
@ -66,8 +73,6 @@ import enginuity.xml.DOMRomUnmarshaller;
|
|||
import enginuity.xml.DOMSettingsBuilder;
|
||||
import enginuity.xml.DOMSettingsUnmarshaller;
|
||||
import enginuity.xml.RomNotFoundException;
|
||||
import org.w3c.dom.Document;
|
||||
import org.xml.sax.InputSource;
|
||||
|
||||
public class ECUEditor extends JFrame implements WindowListener, PropertyChangeListener {
|
||||
|
||||
|
@ -294,6 +299,7 @@ public class ECUEditor extends JFrame implements WindowListener, PropertyChangeL
|
|||
Vector<Table> romTables = rom.getTables();
|
||||
for (Table t : romTables) {
|
||||
rightPanel.remove(t.getFrame());
|
||||
TableUpdateHandler.getInstance().deregisterTable(t);
|
||||
}
|
||||
|
||||
Vector<TreePath> path = new Vector<TreePath>();
|
||||
|
|
|
@ -72,10 +72,15 @@ public final class TableUpdateHandler implements DataUpdateHandler {
|
|||
if (!tables.contains(table)) {
|
||||
tables.add(table);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static TableUpdateHandler getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
public void deregisterTable(Table table) {
|
||||
List<Table> tables = tableMap.get(table.getLogParam());
|
||||
tables.remove(table);
|
||||
}
|
||||
|
||||
public static TableUpdateHandler getInstance() {
|
||||
return INSTANCE;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue