summaryrefslogtreecommitdiffstats
path: root/hl
diff options
context:
space:
mode:
Diffstat (limited to 'hl')
-rw-r--r--hl/src/H5LT.c9
-rw-r--r--hl/src/H5TB.c63
-rw-r--r--hl/test/test_lite.c19
3 files changed, 40 insertions, 51 deletions
diff --git a/hl/src/H5LT.c b/hl/src/H5LT.c
index c38d383..d118942 100644
--- a/hl/src/H5LT.c
+++ b/hl/src/H5LT.c
@@ -1749,14 +1749,15 @@ print_enum(hid_t type, char* str, int indt)
free(value);
H5Tclose(super);
+ return ret;
+
+out:
+
if(0 == nmembs) {
sprintf(tmp_str, "\n%*s <empty>", indt + 4, "");
strcat(str, tmp_str);
} /* end if */
-
- return ret;
-
-out:
+
/* Release resources */
if(name) {
for(i = 0; i < nmembs; i++)
diff --git a/hl/src/H5TB.c b/hl/src/H5TB.c
index a035319..b9cb73c 100644
--- a/hl/src/H5TB.c
+++ b/hl/src/H5TB.c
@@ -3213,16 +3213,12 @@ herr_t H5TBget_field_info( hid_t loc_id,
size_t *field_offsets,
size_t *type_size )
{
- hid_t did; /* dataset ID */
- hid_t tid; /* file type ID */
- hid_t n_tid; /* native type ID */
- hid_t m_tid; /* member type ID */
- hid_t nm_tid; /* native member ID */
+ hid_t did = -1; /* dataset ID */
+ hid_t tid = -1; /* file type ID */
+ hid_t n_tid = -1; /* native type ID */
+ hid_t m_tid = -1; /* member type ID */
+ hid_t nm_tid = -1; /* native member ID */
hssize_t nfields;
- char *member_name;
- size_t member_size;
- size_t member_offset;
- size_t size;
hssize_t i;
/* open the dataset. */
@@ -3233,62 +3229,47 @@ herr_t H5TBget_field_info( hid_t loc_id,
if (( tid = H5Dget_type( did )) < 0)
goto out;
- if ((n_tid = H5Tget_native_type(tid,H5T_DIR_DEFAULT)) < 0)
+ if ((n_tid = H5Tget_native_type(tid, H5T_DIR_DEFAULT)) < 0)
goto out;
/* get the type size */
- size = H5Tget_size( n_tid );
-
- if ( type_size )
- {
- *type_size = size;
- }
+ if(type_size)
+ *type_size = H5Tget_size(n_tid);
/* get the number of members */
if (( nfields = H5Tget_nmembers( tid )) < 0)
goto out;
/* iterate tru the members */
- for ( i = 0; i < nfields; i++)
- {
+ for ( i = 0; i < nfields; i++) {
/* get the member name */
- member_name = H5Tget_member_name( tid, (unsigned)i );
+ if(field_names) {
+ char *member_name;
- if (field_names )
- {
- strcpy( field_names[i], member_name );
- }
+ member_name = H5Tget_member_name(tid, (unsigned)i);
+ strcpy(field_names[i], member_name);
+ free(member_name);
+ } /* end if */
/* get the member type */
- if (( m_tid = H5Tget_member_type( tid,(unsigned) i )) < 0)
+ if(( m_tid = H5Tget_member_type( tid,(unsigned) i )) < 0)
goto out;
- if ((nm_tid = H5Tget_native_type(m_tid,H5T_DIR_DEFAULT)) < 0)
+ if((nm_tid = H5Tget_native_type(m_tid,H5T_DIR_DEFAULT)) < 0)
goto out;
/* get the member size */
- member_size = H5Tget_size( nm_tid );
-
- if(field_sizes )
- {
- field_sizes[i] = member_size;
- }
+ if(field_sizes)
+ field_sizes[i] = H5Tget_size(nm_tid);
/* get the member offset */
- member_offset = H5Tget_member_offset( n_tid,(unsigned) i );
-
- if(field_offsets )
- {
- field_offsets[i] = member_offset;
- }
+ if(field_offsets)
+ field_offsets[i] = H5Tget_member_offset(n_tid, (unsigned) i);
/* close the member types */
if (H5Tclose( m_tid ) < 0)
goto out;
if (H5Tclose( nm_tid ) < 0)
goto out;
-
- free( member_name );
-
} /* i */
/* close */
@@ -3308,6 +3289,8 @@ out:
H5Dclose(did);
H5Tclose(tid);
H5Tclose(n_tid);
+ H5Tclose(m_tid);
+ H5Tclose(nm_tid);
} H5E_END_TRY;
return -1;
diff --git a/hl/test/test_lite.c b/hl/test/test_lite.c
index ad12fb2..9234344 100644
--- a/hl/test/test_lite.c
+++ b/hl/test/test_lite.c
@@ -1535,17 +1535,16 @@ static int test_complicated_compound(void)
hid_t dtype;
int nmembs;
H5T_class_t type_class;
- char* line=NULL;
- FILE *fp;
+ char *line = NULL;
+ FILE *fp = NULL;
size_t size = 1024;
- char *srcdir = getenv("srcdir"); /* the source directory */
+ char *srcdir = getenv("srcdir"); /* the source directory */
char filename[1024]="";
TESTING3(" text for complicated compound types");
/* compose the name of the file to open, using the srcdir, if appropriate */
- if(srcdir)
- {
+ if(srcdir) {
strcpy(filename, srcdir);
strcat(filename, "/");
}
@@ -1553,8 +1552,7 @@ static int test_complicated_compound(void)
/* Open input file */
fp = fopen(filename, "r");
- if(fp == NULL)
- {
+ if(fp == NULL) {
printf( "Could not find file %s. Try set $srcdir \n", filename);
goto out;
}
@@ -1580,6 +1578,7 @@ static int test_complicated_compound(void)
}
fclose(fp);
+ fp = NULL;
if((dtype = H5LTtext_to_dtype(line, H5LT_DDL))<0)
goto out;
@@ -1602,6 +1601,12 @@ static int test_complicated_compound(void)
return 0;
out:
+
+ if(line)
+ free(line);
+ if(fp)
+ fclose(fp);
+
H5_FAILED();
return -1;
}