mirror of
https://github.com/HDFGroup/hdf5.git
synced 2024-11-27 02:10:55 +08:00
[svn-r17938] Purpose:
Fix potential problem similar to Bug1672 (getting garbage values) Description: This will resolve the potential problem like Bug1672 when comparing attributes. It improves the performance by not calling diff_array twice. (diffing time in half). Little clean up on comment lines. Refer to the Bug fix 1672. (also svn revision 17905 on trunk) Tested on: linux32 (jam) , linux64 (almani), solaris (linew)
This commit is contained in:
parent
497a6fcc85
commit
77b493eea3
@ -130,9 +130,9 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
goto error;
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
/*----------------------------------------------------------------------
|
||||
* check for comparable TYPE and SPACE
|
||||
*-------------------------------------------------------------------------
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
if ( msize1 != msize2
|
||||
@ -175,9 +175,9 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
/*---------------------------------------------------------------------
|
||||
* read
|
||||
*-------------------------------------------------------------------------
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
nelmts1=1;
|
||||
for (j=0; j<rank1; j++)
|
||||
@ -198,13 +198,14 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
sprintf(np1,"%s of <%s>",name1,path1);
|
||||
sprintf(np2,"%s of <%s>",name2,path2);
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
/*---------------------------------------------------------------------
|
||||
* array compare
|
||||
*-------------------------------------------------------------------------
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* always print name */
|
||||
if (options->m_verbose)
|
||||
/* verbose (-v) and report (-r) mode */
|
||||
if(options->m_verbose || options->m_report)
|
||||
{
|
||||
do_print_objname ("attribute", np1, np2);
|
||||
nfound = diff_array(buf1,
|
||||
@ -222,67 +223,48 @@ hsize_t diff_attr(hid_t loc1_id,
|
||||
print_found(nfound);
|
||||
|
||||
}
|
||||
/* check first if we have differences */
|
||||
/* quiet mode (-q), just count differences */
|
||||
else if(options->m_quiet)
|
||||
{
|
||||
nfound = diff_array(buf1,
|
||||
buf2,
|
||||
nelmts1,
|
||||
(hsize_t)0,
|
||||
rank1,
|
||||
dims1,
|
||||
options,
|
||||
np1,
|
||||
np2,
|
||||
mtype1_id,
|
||||
attr1_id,
|
||||
attr2_id);
|
||||
}
|
||||
/* the rest (-c, none, ...) */
|
||||
else
|
||||
{
|
||||
if (options->m_quiet==0)
|
||||
{
|
||||
/* shut up temporarily */
|
||||
options->m_quiet=1;
|
||||
nfound = diff_array(buf1,
|
||||
buf2,
|
||||
nelmts1,
|
||||
(hsize_t)0,
|
||||
rank1,
|
||||
dims1,
|
||||
options,
|
||||
np1,
|
||||
np2,
|
||||
mtype1_id,
|
||||
attr1_id,
|
||||
attr2_id);
|
||||
/* print again */
|
||||
options->m_quiet=0;
|
||||
if (nfound)
|
||||
{
|
||||
do_print_objname ("attribute", np1, np2);
|
||||
nfound = diff_array(buf1,
|
||||
buf2,
|
||||
nelmts1,
|
||||
(hsize_t)0,
|
||||
rank1,
|
||||
dims1,
|
||||
options,
|
||||
np1,
|
||||
np2,
|
||||
mtype1_id,
|
||||
attr1_id,
|
||||
attr2_id);
|
||||
do_print_objname ("attribute", np1, np2);
|
||||
nfound = diff_array(buf1,
|
||||
buf2,
|
||||
nelmts1,
|
||||
(hsize_t)0,
|
||||
rank1,
|
||||
dims1,
|
||||
options,
|
||||
np1,
|
||||
np2,
|
||||
mtype1_id,
|
||||
attr1_id,
|
||||
attr2_id);
|
||||
|
||||
/* not comparable, no display the different number */
|
||||
if (!options->not_cmp)
|
||||
print_found(nfound);
|
||||
} /*if*/
|
||||
} /*if*/
|
||||
/* in quiet mode, just count differences */
|
||||
else
|
||||
{
|
||||
nfound = diff_array(buf1,
|
||||
buf2,
|
||||
nelmts1,
|
||||
(hsize_t)0,
|
||||
rank1,
|
||||
dims1,
|
||||
options,
|
||||
np1,
|
||||
np2,
|
||||
mtype1_id,
|
||||
attr1_id,
|
||||
attr2_id);
|
||||
} /*else quiet */
|
||||
} /*else verbose */
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------------
|
||||
/*----------------------------------------------------------------------
|
||||
* close
|
||||
*-------------------------------------------------------------------------
|
||||
*----------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
if (H5Tclose(ftype1_id)<0)
|
||||
|
Loading…
Reference in New Issue
Block a user