Mercurial > octave
diff src/ls-hdf5.cc @ 5351:05adf9de7657
[project @ 2005-05-16 20:07:36 by dbateman]
author | dbateman |
---|---|
date | Mon, 16 May 2005 20:07:36 +0000 |
parents | 4c8a2e4e0717 |
children | 8d7162924bd3 |
line wrap: on
line diff
--- a/src/ls-hdf5.cc Thu May 12 18:13:34 2005 +0000 +++ b/src/ls-hdf5.cc Mon May 16 20:07:36 2005 +0000 @@ -336,7 +336,9 @@ // What integer type do we really have.. std::string int_typ; #ifdef HAVE_H5T_GET_NATIVE_TYPE - // XXX FIXME XX test this code and activated with an autoconf test!! + // XXX FIXME XX test this code and activated with an autoconf + // test!! It is also incorrect for 64-bit indexing!! + switch (H5Tget_native_type (type_id, H5T_DIR_ASCEND)) { case H5T_NATIVE_CHAR: @@ -623,7 +625,7 @@ save_hdf5_empty (hid_t loc_id, const char *name, const dim_vector d) { hsize_t sz = d.length (); - int dims[sz]; + octave_idx_type dims[sz]; bool empty = false; hid_t space_hid = -1, data_hid = -1; int retval; @@ -640,7 +642,7 @@ space_hid = H5Screate_simple (1, &sz, (hsize_t *) 0); if (space_hid < 0) return space_hid; - data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_INT, space_hid, + data_hid = H5Dcreate (loc_id, name, H5T_NATIVE_IDX, space_hid, H5P_DEFAULT); if (data_hid < 0) { @@ -648,7 +650,7 @@ return data_hid; } - retval = H5Dwrite (data_hid, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, + retval = H5Dwrite (data_hid, H5T_NATIVE_IDX, H5S_ALL, H5S_ALL, H5P_DEFAULT, (void*) dims) >= 0; H5Dclose (data_hid); @@ -674,10 +676,11 @@ hid_t data_hid = H5Dopen (loc_id, name); hid_t space_id = H5Dget_space (data_hid); H5Sget_simple_extent_dims (space_id, &hdims, &maxdims); - int dims[hdims]; int retval; - retval = H5Dread (data_hid, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, + OCTAVE_LOCAL_BUFFER (octave_idx_type, dims, hdims); + + retval = H5Dread (data_hid, H5T_NATIVE_IDX, H5S_ALL, H5S_ALL, H5P_DEFAULT, (void *) dims); if (retval >= 0) {