mirror of
https://github.com/HDFGroup/hdf5.git
synced 2025-03-31 17:10:47 +08:00
[svn-r16859] I fixed some memory leak of H5LTdtype_to_text in the HL library. I fixed some test
verification, too. Tested on jam - simple change.
This commit is contained in:
parent
8dd1e72365
commit
cdcd4a7305
@ -1792,6 +1792,7 @@ herr_t H5LTdtype_to_text(hid_t dtype, char *str, H5LT_lang_t lang_type, size_t *
|
||||
if((ret = H5LT_dtype_to_text(dtype, &text_str, lang_type, &str_len, 1)) < 0)
|
||||
goto out;
|
||||
*len = strlen(text_str) + 1;
|
||||
free(text_str);
|
||||
} else if(len && str) {
|
||||
if((ret = H5LT_dtype_to_text(dtype, &str, lang_type, len, 0)) < 0)
|
||||
goto out;
|
||||
@ -2076,6 +2077,9 @@ next:
|
||||
break;
|
||||
}
|
||||
case H5T_OPAQUE:
|
||||
{
|
||||
char *tag;
|
||||
|
||||
/* Print lead-in */
|
||||
sprintf(*dt_str, "H5T_OPAQUE {\n");
|
||||
indent += COL;
|
||||
@ -2085,7 +2089,12 @@ next:
|
||||
strcat(*dt_str, tmp_str);
|
||||
|
||||
indentation(indent + COL, *dt_str);
|
||||
sprintf(tmp_str, "OPQ_TAG \"%s\";\n", H5Tget_tag(dtype));
|
||||
tag = H5Tget_tag(dtype);
|
||||
if(tag) {
|
||||
sprintf(tmp_str, "OPQ_TAG \"%s\";\n", tag);
|
||||
free(tag);
|
||||
} else
|
||||
sprintf(tmp_str, "OPQ_TAG \"\";\n");
|
||||
strcat(*dt_str, tmp_str);
|
||||
|
||||
/* Print closing */
|
||||
@ -2094,6 +2103,7 @@ next:
|
||||
strcat(*dt_str, "}");
|
||||
|
||||
break;
|
||||
}
|
||||
case H5T_ENUM:
|
||||
{
|
||||
hid_t super;
|
||||
|
@ -1317,10 +1317,12 @@ static int test_enums(void)
|
||||
dt_str = (char*)calloc(str_len, sizeof(char));
|
||||
if(H5LTdtype_to_text(dtype, dt_str, H5LT_DDL, &str_len)<0)
|
||||
goto out;
|
||||
/*if(strcmp(dt_str, "H5T_ENUM {\n H5T_STD_I32LE;\n \"RED\" 5;\n \"GREEN\" 6;\n \"BLUE\" 7;\n \"WHITE\" 8;\n }")) {
|
||||
printf("dt=\n%s\n", dt_str);
|
||||
goto out;
|
||||
}*/
|
||||
if(strcmp(dt_str, "H5T_ENUM {\n H5T_STD_I32LE;\n \"RED\" 5;\n \"GREEN\" 6;\n \"BLUE\" 7;\n \"WHITE\" 8;\n }")) {
|
||||
|
||||
printf("dt=\n%s\n", dt_str);
|
||||
goto out;
|
||||
}
|
||||
|
||||
free(dt_str);
|
||||
|
||||
if(H5Tclose(dtype)<0)
|
||||
@ -1427,10 +1429,11 @@ static int test_arrays(void)
|
||||
dt_str = (char*)calloc(str_len, sizeof(char));
|
||||
if(H5LTdtype_to_text(dtype, dt_str, H5LT_DDL, &str_len)<0)
|
||||
goto out;
|
||||
/*if(strcmp(dt_str, "H5T_ARRAY { [5][7][13] H5T_ARRAY { [17][19] H5T_COMPOUND { H5T_STD_I8BE \"arr_compound_1\"; H5T_STD_I32BE \"arr_compound_2\"; } } }")) {
|
||||
printf("dt=\n%s\n", dt_str);
|
||||
goto out;
|
||||
}*/
|
||||
if(strcmp(dt_str, "H5T_ARRAY {\n [5][7][13] H5T_ARRAY {\n [17][19] H5T_COMPOUND {\n H5T_STD_I8BE \"arr_compound_1\" : 0;\n H5T_STD_I32BE \"arr_compound_2\" : 1;\n }\n }\n }")) {
|
||||
printf("dt=\n%s\n", dt_str);
|
||||
goto out;
|
||||
}
|
||||
|
||||
free(dt_str);
|
||||
|
||||
if(H5Tclose(dtype)<0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user