Skip to content

Commit

Permalink
Fix datasetExists performance
Browse files Browse the repository at this point in the history
See #165
  • Loading branch information
tpietzsch committed Aug 3, 2023
1 parent 6608e4f commit 20a7034
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions src/main/java/bdv/img/hdf5/HDF5Access.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import hdf.hdf5lib.H5;
import hdf.hdf5lib.HDF5Constants;
import hdf.hdf5lib.exceptions.HDF5LibraryException;
import hdf.hdf5lib.structs.H5O_info_t;
import java.io.File;
import java.util.LinkedHashMap;
import java.util.Map;
Expand All @@ -57,7 +58,6 @@
import static hdf.hdf5lib.H5.H5open;
import static hdf.hdf5lib.HDF5Constants.H5F_ACC_RDONLY;
import static hdf.hdf5lib.HDF5Constants.H5O_TYPE_DATASET;
import static hdf.hdf5lib.HDF5Constants.H5O_TYPE_GROUP;
import static hdf.hdf5lib.HDF5Constants.H5P_DEFAULT;
import static hdf.hdf5lib.HDF5Constants.H5S_SELECT_SET;
import static net.imglib2.util.Util.long2int;
Expand Down Expand Up @@ -153,10 +153,13 @@ public synchronized void clear()

private boolean datasetExists( final String pathName )
{
if ( "/".equals( pathName ) )
return false;

try
{
final int objectTypeId = "/".equals( pathName ) ? H5O_TYPE_GROUP : HDFHelper.H5Oget_info_by_name( fileId, pathName, false ).type;
return objectTypeId == H5O_TYPE_DATASET;
final H5O_info_t info = H5.H5Oget_info_by_name( fileId, pathName, HDF5Constants.H5O_INFO_BASIC, HDF5Constants.H5P_DEFAULT );
return info.type == H5O_TYPE_DATASET;
}
catch ( HDF5LibraryException e )
{
Expand Down

0 comments on commit 20a7034

Please sign in to comment.