diff options
Diffstat (limited to 'src/H5T.c')
-rw-r--r-- | src/H5T.c | 20 |
1 files changed, 12 insertions, 8 deletions
@@ -6912,14 +6912,16 @@ H5T_enum_nameof(H5T_t *dt, void *value, char *name/*out*/, size_t size) assert(name || 0==size); if (name && size>0) *name = '\0'; + /* Sanity check */ + if (dt->u.enumer.nmembs == 0) { + HRETURN_ERROR(H5E_DATATYPE, H5E_NOTFOUND, NULL, + "datatype has no members"); + } + /* Do a binary search over the values to find the correct one */ H5T_sort_value(dt, NULL); lt = 0; rt = dt->u.enumer.nmembs; - if (rt == 0) { - HRETURN_ERROR(H5E_DATATYPE, H5E_NOTFOUND, NULL, - "datatype has no members"); - } md = -1; while (lt<rt) { @@ -6985,14 +6987,16 @@ H5T_enum_valueof(H5T_t *dt, const char *name, void *value/*out*/) assert(name && *name); assert(value); + /* Sanity check */ + if (dt->u.enumer.nmembs == 0) { + HRETURN_ERROR(H5E_DATATYPE, H5E_NOTFOUND, FAIL, + "datatype has no members"); + } + /* Do a binary search over the names to find the correct one */ H5T_sort_name(dt, NULL); lt = 0; rt = dt->u.enumer.nmembs; - if (rt == 0) { - HRETURN_ERROR(H5E_DATATYPE, H5E_NOTFOUND, FAIL, - "datatype has no members"); - } md = -1; while (lt<rt) { |