diff options
author | Quincey Koziol <koziol@hdfgroup.org> | 2010-01-28 13:11:38 (GMT) |
---|---|---|
committer | Quincey Koziol <koziol@hdfgroup.org> | 2010-01-28 13:11:38 (GMT) |
commit | 3360c3af0c100ac4d3a2fe2865f34661da862ec5 (patch) | |
tree | 9caf7dba62679504aa39ec02ebb72d8b8b5a848d /hl/src/H5LT.c | |
parent | 5b4d3279099e7e4fad6e0092c77aa93dfd35d616 (diff) | |
download | hdf5-3360c3af0c100ac4d3a2fe2865f34661da862ec5.zip hdf5-3360c3af0c100ac4d3a2fe2865f34661da862ec5.tar.gz hdf5-3360c3af0c100ac4d3a2fe2865f34661da862ec5.tar.bz2 |
[svn-r18175] Description:
Bring r17986:18172 from trunk to revise_chunks branch.
Tested on:
FreeBSD/32 6.3 (duty) in debug mode
FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
Linux/32 2.6 (jam) w/PGI compilers, w/default API=1.8.x,
w/C++ & FORTRAN, w/threadsafe, in debug mode
Linux/64-amd64 2.6 (amani) w/Intel compilers, w/default API=1.6.x,
w/C++ & FORTRAN, in production mode
Solaris/32 2.10 (linew) w/deprecated symbols disabled, w/C++ & FORTRAN,
w/szip filter, in production mode
Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
in production mode
Linux/64-ia64 2.4 (tg-login3) w/parallel, w/FORTRAN, in debug mode
Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
Diffstat (limited to 'hl/src/H5LT.c')
-rw-r--r-- | hl/src/H5LT.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/hl/src/H5LT.c b/hl/src/H5LT.c index e797d14..d118942 100644 --- a/hl/src/H5LT.c +++ b/hl/src/H5LT.c @@ -1668,7 +1668,7 @@ print_enum(hid_t type, char* str, int indt) int nmembs; /*number of members */ char tmp_str[256]; int nchars; /*number of output characters */ - hid_t super; /*enum base integer type */ + hid_t super = -1; /*enum base integer type */ hid_t native = -1; /*native integer data type */ size_t super_size; /*enum base type size */ size_t dst_size; /*destination value type size */ @@ -1742,21 +1742,36 @@ print_enum(hid_t type, char* str, int indt) } /* Release resources */ - for (i = 0; i < nmembs; i++) + for(i = 0; i < nmembs; i++) free(name[i]); free(name); free(value); H5Tclose(super); - if (0 == nmembs) { + return ret; + +out: + + if(0 == nmembs) { sprintf(tmp_str, "\n%*s <empty>", indt + 4, ""); strcat(str, tmp_str); - } + } /* end if */ + + /* Release resources */ + if(name) { + for(i = 0; i < nmembs; i++) + if(name[i]) + free(name[i]); + free(name); + } /* end if */ - return ret; + if(value) + free(value); + + if(super >= 0) + H5Tclose(super); -out: return FAIL; } |