mirror of
https://github.com/paulscherrerinstitute/ch.psi.imagej.hdf5.git
synced 2025-04-24 23:10:05 +02:00
Fixed memory leak that was introduced with the VirtualStack workaround - its still a workaround so CTRLHA-109
This commit is contained in:
parent
9ab9b8b355
commit
bbefd328a8
@ -278,7 +278,7 @@ public class HDF5Reader implements PlugIn {
|
||||
}
|
||||
}
|
||||
|
||||
ImagePlus imp = new ImagePlus(filename + " " + datasetName, stack);
|
||||
ImagePlus imp = new ImagePlusHDF5(filename + " " + datasetName, stack);
|
||||
imp.resetDisplayRange();
|
||||
imp.show();
|
||||
|
||||
|
64
src/main/java/ch/psi/imagej/hdf5/ImagePlusHDF5.java
Normal file
64
src/main/java/ch/psi/imagej/hdf5/ImagePlusHDF5.java
Normal file
@ -0,0 +1,64 @@
|
||||
package ch.psi.imagej.hdf5;
|
||||
|
||||
import java.awt.event.WindowEvent;
|
||||
import java.awt.event.WindowListener;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import ij.ImagePlus;
|
||||
import ij.ImageStack;
|
||||
|
||||
public class ImagePlusHDF5 extends ImagePlus {
|
||||
|
||||
|
||||
private static final Logger logger = Logger.getLogger(ImagePlusHDF5.class.getName());
|
||||
|
||||
public ImagePlusHDF5(String title, ImageStack stack) {
|
||||
super(title, stack);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void show() {
|
||||
super.show();
|
||||
getWindow().addWindowListener(new WindowListener() {
|
||||
|
||||
@Override
|
||||
public void windowOpened(WindowEvent e) {
|
||||
logger.info("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowIconified(WindowEvent e) {
|
||||
logger.info("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowDeiconified(WindowEvent e) {
|
||||
logger.info("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowDeactivated(WindowEvent e) {
|
||||
logger.info("");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowClosing(WindowEvent e) {
|
||||
logger.info("Closing");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowClosed(WindowEvent e) {
|
||||
logger.info("Closed");
|
||||
ImageStack stack = getStack();
|
||||
if(stack instanceof VirtualStackHDF5){
|
||||
((VirtualStackHDF5) stack).close();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void windowActivated(WindowEvent e) {
|
||||
logger.info("");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -158,10 +158,10 @@ public class VirtualStackHDF5 extends ImageStack {
|
||||
return bitDepth;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void finalize() throws Throwable {
|
||||
super.finalize();
|
||||
|
||||
/**
|
||||
* Close HDF5 file
|
||||
*/
|
||||
public void close() {
|
||||
logger.info("Closing HDF5 file");
|
||||
try{
|
||||
file.close();
|
||||
|
Loading…
x
Reference in New Issue
Block a user