Skip to content

Commit

Permalink
Merge branch 'master' into 1uc/refactor-copy-buffers
Browse files Browse the repository at this point in the history
  • Loading branch information
alkino authored Jul 11, 2023
2 parents eb9f0f9 + d2b1173 commit f21ca6a
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 2 deletions.
7 changes: 5 additions & 2 deletions include/highfive/H5DataType.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -239,11 +239,14 @@ class CompoundType: public DataType {
size_t n_members = static_cast<size_t>(result);
members.reserve(n_members);
for (unsigned i = 0; i < n_members; i++) {
const char* name = H5Tget_member_name(_hid, i);
char* name = H5Tget_member_name(_hid, i);
size_t offset = H5Tget_member_offset(_hid, i);
hid_t member_hid = H5Tget_member_type(_hid, i);
DataType member_type{member_hid};
members.emplace_back(name, member_type, offset);
members.emplace_back(std::string(name), member_type, offset);
if (H5free_memory(name) < 0) {
throw DataTypeException("Could not free names from the compound datatype");
}
}
}

Expand Down
4 changes: 4 additions & 0 deletions tests/unit/tests_high_five_base.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2643,6 +2643,10 @@ TEST_CASE("HighFiveCompounds") {

CompoundType t2_from_hid(t2);
CHECK(t2 == t2_from_hid);

// Back from a DataType
CHECK_NOTHROW(CompoundType(DataType(t1_from_hid)));
CHECK_THROWS(CompoundType(AtomicType<uint32_t>{}));
}

struct GrandChild {
Expand Down

0 comments on commit f21ca6a

Please sign in to comment.