Read Problem with the C++ API (H5S_SELECT_GET_SEQ_LIST issue?)

So looking at H5D_scatter_mem, the problem is when it calls HDmemcpy. It
seems the values in the offset array are incorrect. The first value is zero,
which is correct, but the next is 48096, which really should be 8 since
we're reading two ints at a time. For some reason H5S_SELECT_GET_SEQ_LIST is
doing something wrong. Now 48096/4 = 12024, which is the width of the data
set. However, if I try reading the entire data set rather than just a
2x2, H5S_SELECT_GET_SEQ_LIST gets the length array wrong for some reason,
giving me a reeeeeeeally long length.

I didn't mention this before, but I'm running v1.8.4 acquired from the git
repo: git://gitorious.org/hdf5/hdf5-v18.git
Windows 7 64-bit, Visual Studio 2008, I compiled zlib, szip, and the hdf5
libraries from scratch with the Multithreaded/Multithreaded Debug runtimes.

-John

···

Hi John,

···

On Apr 21, 2010, at 8:09 PM, John Kua wrote:

So looking at H5D_scatter_mem, the problem is when it calls HDmemcpy. It seems the values in the offset array are incorrect. The first value is zero, which is correct, but the next is 48096, which really should be 8 since we're reading two ints at a time. For some reason H5S_SELECT_GET_SEQ_LIST is doing something wrong. Now 48096/4 = 12024, which is the width of the data set. However, if I try reading the entire data set rather than just a 2x2, H5S_SELECT_GET_SEQ_LIST gets the length array wrong for some reason, giving me a reeeeeeeally long length.

I didn't mention this before, but I'm running v1.8.4 acquired from the git repo: git://gitorious.org/hdf5/hdf5-v18.git
Windows 7 64-bit, Visual Studio 2008, I compiled zlib, szip, and the hdf5 libraries from scratch with the Multithreaded/Multithreaded Debug runtimes.

  From looking at the code you sent, I think the issue is that you don't have a contiguous array of integers, you have an array of pointers to arrays of integers. Try changing your code to allocate a contiguous array of integers.

  Quincey

Quincey,

That did the trick! I guess I was just confused by the C++ example
(readdata.cpp) which initialized a multidimensional array. Thanks for your
help!

-John

···

On Thu, Apr 22, 2010 at 4:12 AM, Quincey Koziol <koziol@hdfgroup.org> wrote:

Hi John,

On Apr 21, 2010, at 8:09 PM, John Kua wrote:

So looking at H5D_scatter_mem, the problem is when it calls HDmemcpy. It
seems the values in the offset array are incorrect. The first value is zero,
which is correct, but the next is 48096, which really should be 8 since
we're reading two ints at a time. For some reason H5S_SELECT_GET_SEQ_LIST is
doing something wrong. Now 48096/4 = 12024, which is the width of the data
set. However, if I try reading the entire data set rather than just a
2x2, H5S_SELECT_GET_SEQ_LIST gets the length array wrong for some reason,
giving me a reeeeeeeally long length.

I didn't mention this before, but I'm running v1.8.4 acquired from the git
repo: git://gitorious.org/hdf5/hdf5-v18.git
Windows 7 64-bit, Visual Studio 2008, I compiled zlib, szip, and the hdf5
libraries from scratch with the Multithreaded/Multithreaded Debug runtimes.

From looking at the code you sent, I think the issue is that you don't have
a contiguous array of integers, you have an array of pointers to arrays of
integers. Try changing your code to allocate a contiguous array of
integers.

Quincey

_______________________________________________
Hdf-forum is for HDF software users discussion.
Hdf-forum@hdfgroup.org
http://mail.hdfgroup.org/mailman/listinfo/hdf-forum_hdfgroup.org