Commit Graph

40 Commits

Author SHA1 Message Date
Quincey Koziol
ba087ce2b5 Clean up private / package / static namespace issues (function naming, which
header file, FUNC_ENTER / LEAVE, etc).  Removed remaining personal email
addresses from library source code (still needs cleaned from other directories).
Misc. warning, style, and whitespace cleanup.
2020-08-22 14:00:44 -05:00
Dana Robinson
1ae6daaa80 Sync with develop 2020-08-01 09:18:18 -07:00
Allen Byrne
c1db3c97c6 Whitespace cleanup 2020-05-13 07:15:38 -05:00
David Young
c0fa07fd9f src/H5Eint.c: #include H5TSprivate.h for H5TS_thread_id() definitions.
test/thread_id.c: move threads_failure() inside #ifdefs.
2020-05-11 15:32:40 -05:00
David Young
524af38af8 Change thread IDs to uint64_t from unsigned long, per Quincey's suggestion.
Fix a typo in the H5TS_thread_init() comment and reword some ID
properties.
2020-05-06 15:37:42 -05:00
David Young
763d7a778e Replace pthread_self_ulong() with H5TS_thread_id(). The POSIX Threads
implementation ought to be portable to any system that has POSIX
Threads.  On Windows, I use the same API call as before.
2020-05-06 15:37:14 -05:00
Jordan Henderson
802b292725 Assign NULL to func_name/file_name/desc error entry pointers when clearing error stack 2019-05-17 10:49:27 -05:00
Dana Robinson
32ea4e72f1 Merge branch 'develop' into c_stdlib_posix_call_cleanup 2019-02-19 14:49:20 -08:00
Binh-Minh Ribler
d584b233a5 Fixed HDFFV-10684
Description:
    The test for HDFFV-10588 has revealed a bug in H5Ewalk.
    H5Ewalk did not stop midway even when the call back function returns
    H5_ITER_STOP. This is because a condition is missing from the for
    loops in H5E__walk causing the callback functions unable to stop until
    all the errors in the stack are iterated. Quincey advised on the final
    fix.  In this fix, "status" is switched to "ret_value" and HGOTO_ERROR
    to HERROR, and the for loops won't continue when "ret_value" is not 0.
Platforms tested:
    Linux/64 (jelly)
    Linux/64 (platypus)
    Darwin (osx1010test)
2019-01-20 17:46:28 -06:00
Dana Robinson
536a32c59b C and POSIX call cleanup 2019-01-10 17:51:42 -08:00
Dana Robinson
eb78fd8832 Develop normalization with vol_integration.
Mostly peripheral things like the tools and wrappers,
with just enough core library code to support that.
2018-09-18 22:57:37 -07:00
Quincey Koziol
f38864920d Merge branch 'develop' of https://bitbucket.hdfgroup.org/scm/hdffv/hdf5 into merge_func_enter_vol
Plus initial steps toward merging API context push into FUNC_ENTER_API* macros
2018-03-18 18:36:49 -05:00
Larry Knox
89fbe00dec Merge pull request #426 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10 to hdf5_1_10
* commit '54957d37f5aa73912763dbb6e308555e863c43f4':
  Commit copyright header change for src/H5PLpkg.c which was added after running script to make changes.
  Add new files in release_docs to MANIFEST. Cimmit changes to Makefile.in(s) and H5PL.c that resulted from running autogen.sh.
  Merge pull request #407 in HDFFV/hdf5 from ~LRKNOX/hdf5_lrk:hdf5_1_10_1 to hdf5_1_10_1
  Change copyright headers to replace url referring to file to be removed and replace it with new url for COPYING file.
2017-04-25 16:05:36 -05:00
Quincey Koziol
bd33a9d6da [svn-r29842] Description:
Bring [appropriate portions of] r29811, 29813, 29826, 29830, 29831 from
revise_chunks branch to the trunk.

Tested on:
    MacOSX/64 10.11.4 (amazon) w/serial, parallel & production
    (h5committest forthcoming)
2016-04-30 01:10:38 -05:00
Quincey Koziol
d4f3d93b8d [svn-r28769] Description:
More memory cleanups and leak elimination.

Tested on:
    MacOSX/64 10.11.2 (amazon) w/serial & parallel
    (h5committest forthcoming)
2016-01-02 20:03:08 -05:00
Quincey Koziol
1023374492 [svn-r27768] Description:
Complete revamp of package initialization/shutdown mechanism in the library.
Each package now has a single init/term routine.

    This new way should avoid packages being re-initialized during library
shutdown and is also be _much_ more proactive about giving feedback for
resource leaks internal to the library.

    Introduces a new "module" header file for packages in the library
(e.g src/H5Fmodule.h) which sets up some necessary package configuration macros
for the FUNC_ENTER/LEAVE macros.  (The VFL drivers have their own slightly
modified version of this header, src/H5FDdrvr_module.h)

    Also cleaned up a bunch of resources leaks all across the library and tests,
along with addressing many warnings, as I encountered them.

Tested on:
    MacOSX/64 10.10.5 (amazon) w/serial & parallel
    Linux/64 3.10.x (kituo) w/serial & parallel
    Linux/64 2.6.x (ostrich) w/serial
2015-09-13 22:58:59 -05:00
Mohamad Chaarawi
b9f2a18b5a [svn-r27185] fix more instances where both mpi is_initialized and is_finalized need to be checked before making any MPI calls.
tested with h5committest.
2015-06-10 12:57:32 -05:00
Quincey Koziol
6f75afd15e [svn-r26635] Description:
Bring r26651 from autotools_rework branch to trunk:

    Remove the VSNPRINTF_WORKS macro, it's working around bugs in old SGI
& HP compilers.

Tested on:
    Linux/32 2.6.18 (jam) w/serial & parallel
    (Daily tested on branch for 2+ days)
2015-03-27 19:37:08 -05:00
Quincey Koziol
e9519f5e6a [svn-r22921] Description:
Review Coverity changes and bring them back to trunk. (QK & JK)

r20402:
Added #includes for h5tools.y or h5tools_utils.h as required to remedy implicit
function declarations which caused compiler warnings and coverity issues 703-4
and 708-11.

r20414:
This is related to the previous checkin r20399.  There were incorrect updates
which caused incorrect behavior when no file was given. Also possible segfault
when handling hyperslab options. Simplify the code changes.

r20449:
Description: Modified H5E_walk2_cb to check return value of H5I_object_verify.

r20450:
fixed coverity 813


Tested on:
    Mac OSX/64 10.8.2 (amazon) w/C++, FORTRAN, debug & threadsafe
    (too minor to require h5committest)
2012-10-18 14:47:39 -05:00
Quincey Koziol
88a94bbe7f [svn-r22646] Description:
Changes resulting from Klocwork static analysis tool, from Mark Miller
@ LLNL (miller86@llnl.gov).

Tested on:
    Mac OS X/64 10.7.4 (amazon) w/debug, C++ & FORTRAN, using gcc 4.7.x
    (too minor to require h5committest)
2012-08-08 18:01:20 -05:00
Quincey Koziol
9c9ee2008c [svn-r21919] Description:
Refactor function name macros and simplify the FUNC_ENTER macros, to clear
away the cruft and prepare for further cleanups.

Tested on:
    Mac OSX/64 10.7.3 (amazon) w/debug, production & parallel
2012-02-08 22:13:27 -05:00
Quincey Koziol
1d9307bd91 [svn-r20885] Description:
Bring Coverity changes back to trunk:

r20340:
Address coverity issue 248.  Set freed pointer to NULL if realloc fails, then check for NULL before attempting to close array of handles stored in memory addressed by pointer.

r20341:
Added initialization udata.path = NULL; udata.visited = NULL; to prevent unintialized use after done: label.

Do C-style initialization AFTER all variable definitions.

r20342:
Fix valgrind error in H5DUMP-XML-tall.h5

r20343:
Addressed Coverity issue 591 - check the return value of H5S_SELECT_ITER_RELEASE.

r20344:
Added initialization udata.path = NULL; to prevent uninitialized used after done: label

r20347:
Purpose: Fix memory leak in overhead.c

Description: Fixed leak in test() in overhead.c where array "had" was never
freed.


r20348:
Addressed Coverity issue 705 - added prototype for resize_configs_are_equal to cache_common.h.

r20392:
Purpose: Fix coverity issues 1677 and 1678

Description: Added return value checking for 4 funciton calls in
H5tools_get_symlink_info().

r20394:
Purpose: Fix coverity issues 1674 and 1675

Description: Modified H5Epush2() and H5E_printf_stack() to keep track of whether
va_start() has been called, and to call va_end() at the end if so.

r20395:
Should be H5MM_calloc(count * sizeof(void*)). Fixed --gh 

r20396:
Should be H5MM_calloc(count * sizeof(void*)). Fixed. --gh

Tested on:
    Mac OSX/32 10.6.7 (amazon) w/debug & production
    (h5committested on branch)
2011-05-20 17:04:03 -05:00
Raymond Lu
9df4fe0a87 [svn-r19539] Bug 1707 - I added some comments.
Tested on jam - simple change.
2010-10-07 15:00:57 -05:00
Raymond Lu
011db9e56c [svn-r19533] Bug 1707 - an update according to Neil's suggestion. I took out the VERS, IS_DEFAULT from
H5E_auto_t structure in H5Epkg.h when the macro H5_NO_DEPRECATED_SYMBOLS is defined.

Tested on jam, heiwa, amani.
2010-10-07 11:00:43 -05:00
Raymond Lu
d6c6a34a8f [svn-r19457] Bug fix for 1707 - H5Eset_auto causes a seg fault when an application uses -DH5_USE_16_API with the 1.8 library to compile. The cause is from the mismatch of H5Eprint1 and H5Eprint2 set
through H5Eset_auto.  I changed the union in the structure H5E_auto_t.  Another change is to 
make H5Eget_auto fail if H5Eset_auto is called to set the printing function.  I'll write a 
document for it.

Tested on heiwa, jam, and amani.

The property change in configure.in, config, and Makefile.am came from the merge of the 1.8 
library change.
2010-09-21 11:46:38 -05:00
Quincey Koziol
1914737e06 [svn-r19398] Descriptino:
Clean up the internal usage H5I_dec_ref() to eliminate the sequence of
flags that has been creeping in.

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, w/threadsafe, in production mode
        Linux/PPC 2.6 (heiwa) w/C++ & FORTRAN, w/threadsafe, in debug mode
        Linux/64-ia64 2.6 (cobalt) w/Intel compilers, w/C++ & FORTRAN,
                in production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in debug mode
        Mac OS X/32 10.6.4 (amazon) in debug mode
        Mac OS X/32 10.6.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                in production mode
        Mac OS X/32 10.6.4 (amazon) w/parallel, in debug mode
2010-09-16 09:02:19 -05:00
Raymond Lu
073eb187d6 [svn-r19363] When mandatory filter failed to write data chunks, the dataset
couldn't close (bug 1260).  The fix releases all resources and closes
the dataset but returns a failure.

Tested with h5committest - jam, heiwa, amani.
2010-09-09 13:15:36 -05:00
Quincey Koziol
edf124f40b [svn-r18616] Description:
Clean up compiler warnings.

Tested on:
    Mac OS X/32 10.6.3 (amazon) w/debug
    (too minor to require h5committest)
2010-04-22 14:56:03 -05:00
Quincey Koziol
bb25c85e79 [svn-r18159] Description:
Bring Coverity fixes from 1/22/10 session to trunk:

r18137:
219: Initialized hid_t to -1 and added close to error block.
189-191: Initialized line to NULL and added free line, and close fp to error block.

r18138:
19: Moved code block for printing that the number of enums is empty to the error block. (Would never have been executed otherwise)

r18139:
Fix coverity item 58.  Moved code related to displaying the parent of a repeated
group to the else(isRoot) section, as the root group has no parent.

r18140:
218: Initialized ret_value variable to -1. Because of throw Exception in default case of switch, the coverity problem would not have executed anyway. Good pratice is to initialize variables.

r18141:
Fix coverity item 92.  Added code to H5E_register_class to free cls in case of
an error.

r18142:
Fix coverity item 91.  Added code to H5E_create_msg to free msg in case of an
error.

r18143:
fixed issue 14,
took away "if" and used #ifndef_xxx.

r18144:
Fix coverity item 110.   Added code to H5Eget_minor to free msg_str in case of
an error.

r18145:
fixed coverity #18 removed "aligned", it is always NULL.

r18146:
Fix coverity item 109.   Added code to H5Eget_major to free msg_str in case of
an error.

r18147:
Fixed coverity #81 and #82, Check for bad pointer(s), but can't issue error, just leave

r18148:
Fix coverity item 97.   Added code to H5FD_fapl_open to free copied_driver_info
in case of an error.

r18149:
Fix coverity item 96.   Added code to H5FD_dxpl_open to free copied_driver_info
in case of an error.

r18150:
Fix Coverity issue #29: Protected cache_ptr dereferences with "if(pass)"
block

r18151:
Fix coverity item 93.   Added code to H5FL_fac_init to free factory and new_node
in case of an error.

r18152:
Fix coverity items 98 and 99.   Added code free allocated space in case of
error.

r18155:
124: Freed head pointer before jumping to done. There was no error handling block and normal exit used same path out.
120-123: Freed list of lists in error handling block.

r18156:
Fix coverity issues 179, 180, 181, 182, 183, 184, 186, 320, 407.  These were resource leak issues where allocated memory was not freed, generally in the case of tests that failed.

Tested on:
    Mac OS X/32 10.6.2 (amazon) debug & production
2010-01-23 02:00:00 -05:00
Quincey Koziol
9d27b9765a [svn-r17313] Description:
Bring back various minor code cleanups from the file free space 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 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
        Mac OS X/32 10.5.8 (amazon) in debug mode
        Mac OS X/32 10.5.8 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
2009-08-10 12:08:27 -05:00
Raymond Lu
be8cb6411a [svn-r16835] Allow an error class to use other class's major or minor errors. Added a test for it, too.
Tested on jam - simple change.
2009-04-22 13:39:10 -05:00
Quincey Koziol
aa03e8bc94 [svn-r15549] Description:
Initial checkin of extensible array data structure prototype code and
regression tests.

	Initial definitions for revised FUNC_ENTER/LEAVE and error reporting
macros, which are being vetted in the extensible array code.

	Minor warning and formatting cleanups in other sections of code.

Tested on:
        Mac OS X/32 10.5.4 (amazon) in debug mode
        Mac OS X/32 10.5.4 (amazon) w/C++ & FORTRAN, w/threadsafe,
                                in production mode
        FreeBSD/32 6.3 (duty) in debug mode
        FreeBSD/64 6.3 (liberty) w/C++ & FORTRAN, in debug mode
        Linux/32 2.6 (kagiso) w/PGI compilers, w/C++ & FORTRAN, w/threadsafe,
                                in debug mode
        Linux/64-amd64 2.6 (smirom) 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 production mode
        Linux/64-amd64 2.6 (abe) w/parallel, w/FORTRAN, in production mode
2008-08-28 09:57:13 -05:00
Quincey Koziol
f8a796ebfc [svn-r15510] Description:
Clean up warnings & formatting

Tested on:
	Mac OS X/32 10.5.4 (amazon)
	More tests forthcoming
2008-08-21 15:30:19 -05:00
Neil Fortner
a59d91d192 [svn-r15485] Purpose: Allow library to shut down properly when objects have reference count
> 1.

Description: Added a new field 'app_count' to H5I_id_info_t struct, to track
    the reference count on an id due to the application.  the old 'count' field
    tracks the total.  Generally any id visible to the application gets placed
    in app_count.  Added app_ref boolean parameter to H5I_inc_ref, H5I_dec_ref,
    H5I_register, H5I_clear_type, and a few other functions, to specify whether
    the operation(s) being performed on the id(s) are due to the application
    (TRUE) or not (FALSE).  Test added for this case.

Tested: kagiso, smirom, linew (h5committest)
2008-08-19 11:35:16 -05:00
Scott Wegner
259d1afce9 [svn-r15165] Purpose: Create new HDpthread_self and HDpthread_self_ulong macros
Description:
On Windows, the pthread_self function cannot be used to print the returned thread ID for debugging.  Instead, we need a separate function, GetCurrentThreadId.  To eliminate some Windows ifdef's in the code, we create two new function macros which can be used by all platforms.  It is conditionally defined in H5win32defs.h, and globally in H5private.h.

Tested:
VS2005 w/ pthreads on WinXP
kagiso w/ pthreads
2008-06-06 14:11:46 -05:00
Scott Wegner
d83709c4e6 [svn-r15128] Purpose: Make Windows threadsafe debug message more useful
Description:
On Linux-like systems, we can get the ID of the current thread through a pthread_self.  However on Windows, the return cannot be cast as a threadID, so we simply couldn't get the ID.  Previously we simply gave up and printed a message that we couldn't get an ID.  Instead, though, we can use the Windows-specific call to GetCurrentThreadId(), which achieves the same goal.  This way we can provide better debug output with threadsafe features.

Tested:
VS2005 on WinXP
VS.NET on WinXP
(other platforms not tested because change is within _WIN32 ifdef)
2008-06-02 15:39:52 -05:00
Quincey Koziol
51073136ce [svn-r14109] Description:
Make certain to define the API function and typedef version macros
in all situations.

Tested on:
	FreeBSD/32 6.2 (duty)
	Mac OS X/32 10.4.10 (amazon)
2007-08-23 18:19:18 -05:00
Quincey Koziol
cdd4606430 [svn-r14097] Description:
First real use of API versioning code, H5E routines switched to use
new API versioning scheme.

Tested on:
	Mac OS X/32 10.4.10 (amazon)
	FreeBSD/32 6.2 (duty)
	FreeBSD/64 6.2 (liberty)
	Linux/32 2.6 (kagiso)
	Linux/64 2.6 (smirom)
	Solaris/32 5.10 (linew)
2007-08-21 16:08:27 -05:00
Scott Wegner
87a41d4286 [svn-r13766] In Visual Studio 2005 for 64-bit, _WIN32 is defined, but not WIN32, so I've standardized all #ifdef's to use _WIN32. This should not affect any other platform.
Tested:
Visual Studio (32- and 64-bit) on Win XP
2007-05-18 10:14:43 -05:00
Quincey Koziol
d6bb18abbc [svn-r13648] Description:
Rename new error handling API routines from H5E<foo>_stack() to
H5E<foo>2().

Tested on:
    Mac OS X/32 10.4.9 (amazon)
    FreeBSD/32 6.2 (duty)
    FreeBSD/64 6.2 (liberty)
2007-04-11 20:59:45 -05:00