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.resetDisplayRange();
|
||||||
imp.show();
|
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;
|
return bitDepth;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
/**
|
||||||
protected void finalize() throws Throwable {
|
* Close HDF5 file
|
||||||
super.finalize();
|
*/
|
||||||
|
public void close() {
|
||||||
logger.info("Closing HDF5 file");
|
logger.info("Closing HDF5 file");
|
||||||
try{
|
try{
|
||||||
file.close();
|
file.close();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user