mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r24116] Correct indentation and create single exit point.
Tested : local linux
This commit is contained in:
parent
6b54dac504
commit
f79eac6049
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
||||
* Copyright by The HDF Group. *
|
||||
* Copyright by the Board of Trustees of the University of Illinois. *
|
||||
* All rights reserved. *
|
||||
@ -27,21 +27,19 @@
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
void init_packobject(pack_info_t *obj)
|
||||
{
|
||||
int j, k;
|
||||
void init_packobject(pack_info_t *obj) {
|
||||
int j, k;
|
||||
|
||||
HDstrcpy(obj->path,"\0");
|
||||
for ( j=0; j<H5_REPACK_MAX_NFILTERS; j++)
|
||||
{
|
||||
obj->filter[j].filtn = -1;
|
||||
for ( k=0; k<CD_VALUES; k++)
|
||||
obj->filter[j].cd_values[k] = 0;
|
||||
}
|
||||
obj->chunk.rank = -1;
|
||||
obj->refobj_id = -1;
|
||||
obj->layout = H5D_LAYOUT_ERROR;
|
||||
obj->nfilters = 0;
|
||||
HDstrcpy(obj->path, "\0");
|
||||
for (j = 0; j < H5_REPACK_MAX_NFILTERS; j++) {
|
||||
obj->filter[j].filtn = -1;
|
||||
for (k = 0; k < CD_VALUES; k++)
|
||||
obj->filter[j].cd_values[k] = 0;
|
||||
}
|
||||
obj->chunk.rank = -1;
|
||||
obj->refobj_id = -1;
|
||||
obj->layout = H5D_LAYOUT_ERROR;
|
||||
obj->nfilters = 0;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -54,19 +52,16 @@ void init_packobject(pack_info_t *obj)
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static void aux_tblinsert_filter(pack_opttbl_t *table,
|
||||
unsigned int I,
|
||||
filter_info_t filt)
|
||||
{
|
||||
if (table->objs[ I ].nfilters<H5_REPACK_MAX_NFILTERS)
|
||||
{
|
||||
table->objs[ I ].filter[ table->objs[ I ].nfilters++ ] = filt;
|
||||
}
|
||||
else
|
||||
{
|
||||
error_msg("cannot insert the filter in this object.\
|
||||
static void aux_tblinsert_filter(pack_opttbl_t *table, unsigned int I,
|
||||
filter_info_t filt) {
|
||||
if (table->objs[I].nfilters < H5_REPACK_MAX_NFILTERS) {
|
||||
table->objs[I].filter[table->objs[I].nfilters++] = filt;
|
||||
}
|
||||
else {
|
||||
error_msg(
|
||||
"cannot insert the filter in this object.\
|
||||
Maximum capacity exceeded\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -79,33 +74,28 @@ static void aux_tblinsert_filter(pack_opttbl_t *table,
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static void aux_tblinsert_layout(pack_opttbl_t *table,
|
||||
unsigned int I,
|
||||
pack_info_t *pack)
|
||||
{
|
||||
int k;
|
||||
static void aux_tblinsert_layout(pack_opttbl_t *table, unsigned int I,
|
||||
pack_info_t *pack) {
|
||||
int k;
|
||||
|
||||
table->objs[I].layout = pack->layout;
|
||||
if (H5D_CHUNKED==pack->layout)
|
||||
{
|
||||
/* -2 means the NONE option, remove chunking
|
||||
and set the layout to contiguous */
|
||||
if (pack->chunk.rank==-2)
|
||||
{
|
||||
table->objs[I].layout = H5D_CONTIGUOUS;
|
||||
table->objs[I].chunk.rank = -2;
|
||||
}
|
||||
/* otherwise set the chunking type */
|
||||
else
|
||||
{
|
||||
table->objs[I].chunk.rank = pack->chunk.rank;
|
||||
for (k = 0; k < pack->chunk.rank; k++)
|
||||
table->objs[I].chunk.chunk_lengths[k] = pack->chunk.chunk_lengths[k];
|
||||
}
|
||||
}
|
||||
table->objs[I].layout = pack->layout;
|
||||
if (H5D_CHUNKED == pack->layout) {
|
||||
/* -2 means the NONE option, remove chunking
|
||||
and set the layout to contiguous */
|
||||
if (pack->chunk.rank == -2) {
|
||||
table->objs[I].layout = H5D_CONTIGUOUS;
|
||||
table->objs[I].chunk.rank = -2;
|
||||
}
|
||||
/* otherwise set the chunking type */
|
||||
else {
|
||||
table->objs[I].chunk.rank = pack->chunk.rank;
|
||||
for (k = 0; k < pack->chunk.rank; k++)
|
||||
table->objs[I].chunk.chunk_lengths[k] =
|
||||
pack->chunk.chunk_lengths[k];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: aux_inctable
|
||||
*
|
||||
@ -116,21 +106,20 @@ static void aux_tblinsert_layout(pack_opttbl_t *table,
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
static int aux_inctable(pack_opttbl_t *table, int n_objs )
|
||||
{
|
||||
unsigned int i;
|
||||
static int aux_inctable(pack_opttbl_t *table, int n_objs) {
|
||||
unsigned int i;
|
||||
|
||||
table->size += n_objs;
|
||||
table->objs = (pack_info_t*)HDrealloc(table->objs, table->size * sizeof(pack_info_t));
|
||||
if (table->objs==NULL) {
|
||||
error_msg("not enough memory for options table\n");
|
||||
return -1;
|
||||
}
|
||||
for (i = table->nelems; i < table->size; i++)
|
||||
{
|
||||
init_packobject(&table->objs[i]);
|
||||
}
|
||||
return 0;
|
||||
table->size += n_objs;
|
||||
table->objs =
|
||||
(pack_info_t*) HDrealloc(table->objs, table->size * sizeof(pack_info_t));
|
||||
if (table->objs == NULL) {
|
||||
error_msg("not enough memory for options table\n");
|
||||
return -1;
|
||||
}
|
||||
for (i = table->nelems; i < table->size; i++) {
|
||||
init_packobject(&table->objs[i]);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -143,31 +132,29 @@ static int aux_inctable(pack_opttbl_t *table, int n_objs )
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
int options_table_init( pack_opttbl_t **tbl )
|
||||
{
|
||||
unsigned int i;
|
||||
pack_opttbl_t *table;
|
||||
int options_table_init(pack_opttbl_t **tbl) {
|
||||
unsigned int i;
|
||||
pack_opttbl_t *table;
|
||||
|
||||
if(NULL == (table = (pack_opttbl_t *)HDmalloc(sizeof(pack_opttbl_t))))
|
||||
{
|
||||
error_msg("not enough memory for options table\n");
|
||||
return -1;
|
||||
}
|
||||
if (NULL == (table = (pack_opttbl_t *) HDmalloc(sizeof(pack_opttbl_t)))) {
|
||||
error_msg("not enough memory for options table\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
table->size = 30;
|
||||
table->nelems = 0;
|
||||
if(NULL == (table->objs = (pack_info_t*)HDmalloc(table->size * sizeof(pack_info_t))))
|
||||
{
|
||||
error_msg("not enough memory for options table\n");
|
||||
HDfree(table);
|
||||
return -1;
|
||||
}
|
||||
table->size = 30;
|
||||
table->nelems = 0;
|
||||
if (NULL == (table->objs =
|
||||
(pack_info_t*) HDmalloc(table->size * sizeof(pack_info_t)))) {
|
||||
error_msg("not enough memory for options table\n");
|
||||
HDfree(table);
|
||||
return -1;
|
||||
}
|
||||
|
||||
for(i = 0; i < table->size; i++)
|
||||
init_packobject(&table->objs[i]);
|
||||
for (i = 0; i < table->size; i++)
|
||||
init_packobject(&table->objs[i]);
|
||||
|
||||
*tbl = table;
|
||||
return 0;
|
||||
*tbl = table;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -181,11 +168,10 @@ int options_table_init( pack_opttbl_t **tbl )
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int options_table_free( pack_opttbl_t *table )
|
||||
{
|
||||
HDfree(table->objs);
|
||||
HDfree(table);
|
||||
return 0;
|
||||
int options_table_free(pack_opttbl_t *table) {
|
||||
HDfree(table->objs);
|
||||
HDfree(table);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -198,95 +184,81 @@ int options_table_free( pack_opttbl_t *table )
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int options_add_layout(obj_list_t *obj_list, int n_objs, pack_info_t *pack,
|
||||
pack_opttbl_t *table) {
|
||||
unsigned int i, I;
|
||||
int j, added = 0, found = 0;
|
||||
|
||||
int options_add_layout( obj_list_t *obj_list,
|
||||
int n_objs,
|
||||
pack_info_t *pack,
|
||||
pack_opttbl_t *table )
|
||||
{
|
||||
unsigned int i, I;
|
||||
int j, added=0, found=0;
|
||||
/* increase the size of the collection by N_OBJS if necessary */
|
||||
if (table->nelems + n_objs >= table->size) {
|
||||
if (aux_inctable(table, n_objs) < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* increase the size of the collection by N_OBJS if necessary */
|
||||
if (table->nelems+n_objs >= table->size)
|
||||
{
|
||||
if (aux_inctable(table,n_objs)<0)
|
||||
return -1;
|
||||
}
|
||||
/* search if this object is already in the table; "path" is the key */
|
||||
if (table->nelems > 0) {
|
||||
/* go tru the supplied list of names */
|
||||
for (j = 0; j < n_objs; j++) {
|
||||
/* linear table search */
|
||||
for (i = 0; i < table->nelems; i++) {
|
||||
/*already on the table */
|
||||
if (HDstrcmp(obj_list[j].obj,table->objs[i].path) == 0) {
|
||||
/* already chunk info inserted for this one; exit */
|
||||
if (table->objs[i].chunk.rank > 0) {
|
||||
error_msg(
|
||||
"chunk information already inserted for <%s>\n",
|
||||
obj_list[j].obj);
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
/* insert the layout info */
|
||||
else {
|
||||
aux_tblinsert_layout(table, i, pack);
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
} /* if */
|
||||
} /* i */
|
||||
|
||||
/* search if this object is already in the table; "path" is the key */
|
||||
if (table->nelems>0)
|
||||
{
|
||||
/* go tru the supplied list of names */
|
||||
for (j = 0; j < n_objs; j++)
|
||||
{
|
||||
/* linear table search */
|
||||
for (i = 0; i < table->nelems; i++)
|
||||
{
|
||||
/*already on the table */
|
||||
if (HDstrcmp(obj_list[j].obj,table->objs[i].path)==0)
|
||||
{
|
||||
/* already chunk info inserted for this one; exit */
|
||||
if (table->objs[i].chunk.rank>0)
|
||||
{
|
||||
error_msg("chunk information already inserted for <%s>\n",obj_list[j].obj);
|
||||
HDexit(EXIT_FAILURE);
|
||||
}
|
||||
/* insert the layout info */
|
||||
else
|
||||
{
|
||||
aux_tblinsert_layout(table,i,pack);
|
||||
found=1;
|
||||
break;
|
||||
}
|
||||
} /* if */
|
||||
} /* i */
|
||||
if (found == 0) {
|
||||
/* keep the grow in a temp var */
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path, obj_list[j].obj);
|
||||
aux_tblinsert_layout(table, I, pack);
|
||||
}
|
||||
/* cases where we have an already inserted name but there is a new name also
|
||||
example:
|
||||
-f dset1:GZIP=1 -l dset1,dset2:CHUNK=20x20
|
||||
dset1 is already inserted, but dset2 must also be
|
||||
*/
|
||||
else if (found == 1
|
||||
&& HDstrcmp(obj_list[j].obj,table->objs[i].path) != 0) {
|
||||
/* keep the grow in a temp var */
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path, obj_list[j].obj);
|
||||
aux_tblinsert_layout(table, I, pack);
|
||||
}
|
||||
} /* j */
|
||||
}
|
||||
|
||||
if (found==0)
|
||||
{
|
||||
/* keep the grow in a temp var */
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path,obj_list[j].obj);
|
||||
aux_tblinsert_layout(table,I,pack);
|
||||
}
|
||||
/* cases where we have an already inserted name but there is a new name also
|
||||
example:
|
||||
-f dset1:GZIP=1 -l dset1,dset2:CHUNK=20x20
|
||||
dset1 is already inserted, but dset2 must also be
|
||||
*/
|
||||
else if (found==1 && HDstrcmp(obj_list[j].obj,table->objs[i].path)!=0)
|
||||
{
|
||||
/* keep the grow in a temp var */
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path,obj_list[j].obj);
|
||||
aux_tblinsert_layout(table,I,pack);
|
||||
}
|
||||
} /* j */
|
||||
}
|
||||
/* first time insertion */
|
||||
else {
|
||||
/* go tru the supplied list of names */
|
||||
for (j = 0; j < n_objs; j++) {
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path, obj_list[j].obj);
|
||||
aux_tblinsert_layout(table, I, pack);
|
||||
|
||||
/* first time insertion */
|
||||
else
|
||||
{
|
||||
/* go tru the supplied list of names */
|
||||
for (j = 0; j < n_objs; j++)
|
||||
{
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path,obj_list[j].obj);
|
||||
aux_tblinsert_layout(table,I,pack);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
table->nelems += added;
|
||||
|
||||
table->nelems+= added;
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
* Function: options_add_filter
|
||||
*
|
||||
@ -297,81 +269,70 @@ int options_add_layout( obj_list_t *obj_list,
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
int options_add_filter(obj_list_t *obj_list,
|
||||
int n_objs,
|
||||
filter_info_t filt,
|
||||
pack_opttbl_t *table )
|
||||
{
|
||||
int options_add_filter(obj_list_t *obj_list, int n_objs, filter_info_t filt,
|
||||
pack_opttbl_t *table) {
|
||||
|
||||
unsigned int i, I;
|
||||
int j, added=0, found=0;
|
||||
unsigned int i, I;
|
||||
int j, added = 0, found = 0;
|
||||
|
||||
/* increase the size of the collection by N_OBJS if necessary */
|
||||
if (table->nelems+n_objs >= table->size)
|
||||
{
|
||||
if (aux_inctable(table,n_objs)<0)
|
||||
return -1;
|
||||
}
|
||||
/* increase the size of the collection by N_OBJS if necessary */
|
||||
if (table->nelems + n_objs >= table->size) {
|
||||
if (aux_inctable(table, n_objs) < 0)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* search if this object is already in the table; "path" is the key */
|
||||
if (table->nelems>0)
|
||||
{
|
||||
/* go tru the supplied list of names */
|
||||
for (j = 0; j < n_objs; j++)
|
||||
{
|
||||
/* linear table search */
|
||||
for (i = 0; i < table->nelems; i++)
|
||||
{
|
||||
/*already on the table */
|
||||
if (HDstrcmp(obj_list[j].obj,table->objs[i].path)==0)
|
||||
{
|
||||
/* insert */
|
||||
aux_tblinsert_filter(table,i,filt);
|
||||
found=1;
|
||||
break;
|
||||
} /* if */
|
||||
} /* i */
|
||||
/* search if this object is already in the table; "path" is the key */
|
||||
if (table->nelems > 0) {
|
||||
/* go tru the supplied list of names */
|
||||
for (j = 0; j < n_objs; j++) {
|
||||
/* linear table search */
|
||||
for (i = 0; i < table->nelems; i++) {
|
||||
/*already on the table */
|
||||
if (HDstrcmp(obj_list[j].obj,table->objs[i].path) == 0) {
|
||||
/* insert */
|
||||
aux_tblinsert_filter(table, i, filt);
|
||||
found = 1;
|
||||
break;
|
||||
} /* if */
|
||||
} /* i */
|
||||
|
||||
if (found==0)
|
||||
{
|
||||
/* keep the grow in a temp var */
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path,obj_list[j].obj);
|
||||
aux_tblinsert_filter(table,I,filt);
|
||||
}
|
||||
/* cases where we have an already inserted name but there is a new name also
|
||||
example:
|
||||
-l dset1:CHUNK=20x20 -f dset1,dset2:GZIP=1
|
||||
dset1 is already inserted, but dset2 must also be
|
||||
*/
|
||||
else if (found==1 && HDstrcmp(obj_list[j].obj,table->objs[i].path)!=0)
|
||||
{
|
||||
/* keep the grow in a temp var */
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path,obj_list[j].obj);
|
||||
aux_tblinsert_filter(table,I,filt);
|
||||
}
|
||||
} /* j */
|
||||
}
|
||||
if (found == 0) {
|
||||
/* keep the grow in a temp var */
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path, obj_list[j].obj);
|
||||
aux_tblinsert_filter(table, I, filt);
|
||||
}
|
||||
/* cases where we have an already inserted name but there is a new name also
|
||||
example:
|
||||
-l dset1:CHUNK=20x20 -f dset1,dset2:GZIP=1
|
||||
dset1 is already inserted, but dset2 must also be
|
||||
*/
|
||||
else if (found == 1
|
||||
&& HDstrcmp(obj_list[j].obj,table->objs[i].path) != 0) {
|
||||
/* keep the grow in a temp var */
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path, obj_list[j].obj);
|
||||
aux_tblinsert_filter(table, I, filt);
|
||||
}
|
||||
} /* j */
|
||||
}
|
||||
|
||||
/* first time insertion */
|
||||
else
|
||||
{
|
||||
/* go tru the supplied list of names */
|
||||
for (j = 0; j < n_objs; j++)
|
||||
{
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path,obj_list[j].obj);
|
||||
aux_tblinsert_filter(table,I,filt);
|
||||
}
|
||||
}
|
||||
/* first time insertion */
|
||||
else {
|
||||
/* go tru the supplied list of names */
|
||||
for (j = 0; j < n_objs; j++) {
|
||||
I = table->nelems + added;
|
||||
added++;
|
||||
HDstrcpy(table->objs[I].path, obj_list[j].obj);
|
||||
aux_tblinsert_filter(table, I, filt);
|
||||
}
|
||||
}
|
||||
|
||||
table->nelems+= added;
|
||||
table->nelems += added;
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
@ -384,34 +345,25 @@ int options_add_filter(obj_list_t *obj_list,
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
pack_info_t* options_get_object( const char *path,
|
||||
pack_opttbl_t *table )
|
||||
{
|
||||
unsigned int i;
|
||||
char tbl_path[MAX_NC_NAME+1]; /* +1 for start with "/" case */
|
||||
pack_info_t* options_get_object(const char *path, pack_opttbl_t *table) {
|
||||
unsigned int i;
|
||||
char tbl_path[MAX_NC_NAME + 1]; /* +1 for start with "/" case */
|
||||
|
||||
for (i = 0; i < table->nelems; i++) {
|
||||
/* make full path (start with "/") to compare correctly */
|
||||
if (HDstrncmp(table->objs[i].path, "/", 1)) {
|
||||
HDstrcpy(tbl_path, "/");
|
||||
HDstrcat(tbl_path, table->objs[i].path);
|
||||
}
|
||||
else
|
||||
HDstrcpy(tbl_path, table->objs[i].path);
|
||||
|
||||
for ( i = 0; i < table->nelems; i++)
|
||||
{
|
||||
/* make full path (start with "/") to compare correctly */
|
||||
if (HDstrncmp(table->objs[i].path, "/", 1))
|
||||
{
|
||||
HDstrcpy(tbl_path, "/");
|
||||
HDstrcat(tbl_path, table->objs[i].path);
|
||||
}
|
||||
else
|
||||
HDstrcpy(tbl_path, table->objs[i].path);
|
||||
/* found it */
|
||||
if (HDstrcmp(tbl_path, path) == 0) {
|
||||
return (&table->objs[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* found it */
|
||||
if (HDstrcmp(tbl_path, path)==0)
|
||||
{
|
||||
return (&table->objs[i]);
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user