platform/upstream/libgc.git
10 years agoEliminate warnings detected by Cppcheck in cord de[_win]
Ivan Maidanski [Sat, 14 Jun 2014 16:30:42 +0000 (20:30 +0400)]
Eliminate warnings detected by Cppcheck in cord de[_win]

* cord/tests/de.c (prune_map): Remove redundant first check of map for
NULL (as "map" variable has already been dereferenced at the point of
the check).
* cord/tests/de.c (replace_line): Do not define "len" local variable
if not used; eliminate duplicate CORD_len(s) call.
* cord/tests/de_win.c (WndProc): Cast char_width and char_height
global variables to unsigned int in division of unsigned xpos, ypos
local variables.

10 years agoFix 'redundant assignment to itself' Cppcheck warning in GC_scratch_alloc
Ivan Maidanski [Sat, 14 Jun 2014 16:11:54 +0000 (20:11 +0400)]
Fix 'redundant assignment to itself' Cppcheck warning in GC_scratch_alloc

* headers.c (GC_scratch_alloc): Do not reassign "bytes_to_get" local
variable to avoid compiler warning in case of ROUNDUP_PAGESIZE_IF_MMAP
is a no-op (i.e., assign bytes_to_get only once directly to a rounded
value).

10 years agoFix 'variable unused' warning in GC_save_callers
Ivan Maidanski [Sat, 14 Jun 2014 15:55:15 +0000 (19:55 +0400)]
Fix 'variable unused' warning in GC_save_callers

* os_dep.c (GC_save_callers): Do not declare "i" local variable unless
it is used.

10 years agoEliminate side effect in assertion condition in disclaim_bench
Ivan Maidanski [Sat, 14 Jun 2014 15:28:09 +0000 (19:28 +0400)]
Eliminate side effect in assertion condition in disclaim_bench
(code refactoring)

* tests/disclaim_bench.c (testobj_finalize): Move "i" field increment
out of assertion condition; replace increment with assignment.

10 years agoFix file descriptor resource leak in GC_register_data_segments (OS/2)
Ivan Maidanski [Fri, 13 Jun 2014 14:22:30 +0000 (18:22 +0400)]
Fix file descriptor resource leak in GC_register_data_segments (OS/2)

* os_dep.c (GC_register_data_segments): Call fclose(myexefile) on
return (only if OS2).

10 years agoDo not put libatomic_ops to gc.tar by Makefile.direct
Ivan Maidanski [Thu, 12 Jun 2014 07:25:01 +0000 (11:25 +0400)]
Do not put libatomic_ops to gc.tar by Makefile.direct

* Makefile.direct (dist gc.tar): Do not add libatomic_ops to gc.tar.

10 years agoRemove dependency on 'Makefile' in Makefile.direct/dj
Ivan Maidanski [Thu, 12 Jun 2014 07:17:46 +0000 (11:17 +0400)]
Remove dependency on 'Makefile' in Makefile.direct/dj

* Makefile.direct (dyn_load_sunos53.o, gc_cpp.o, threadlibs): Remove
dependency on Makefile; remove comment.
* Makefile.dj (dyn_load_sunos53.o, gc_cpp.o, threadlibs): Likewise.
* Makefile.direct (Makefile): Remove rule.
* Makefile.direct (gc.tar): Do not include Makefile.

10 years agoFix 'illegal option -xassembler-with-cpp' error (Oracle SunCC)
Ivan Maidanski [Mon, 9 Jun 2014 22:25:31 +0000 (02:25 +0400)]
Fix 'illegal option -xassembler-with-cpp' error (Oracle SunCC)

* Makefile.am (ASM_CPP_OPTIONS): Move comment to configure.ac.
* Makefile.am (COMPILER_XLC): Rename to ASM_WITH_CPP_UNSUPPORTED.
* configure.ac (COMPILER_XLC): Likewise.
* configure.ac (compiler_suncc): New variable (set to "yes" if Solaris
Sun C compiler).
* configure.ac (ASM_WITH_CPP_UNSUPPORTED): Define not only for
compiler_xlc but also for compiler_suncc.

10 years agoFix CFLAGS in configure regarding -O flag passing to SunCC compiler
Ivan Maidanski [Sun, 8 Jun 2014 13:24:17 +0000 (17:24 +0400)]
Fix CFLAGS in configure regarding -O flag passing to SunCC compiler

* configure.ac (CFLAGS): Add -O flag if Solaris SunCC (i.e., not GCC)
regardless of threads support (i.e., even in case it is off).

10 years agoUpdate ChangeLog file (related to 7.5.0)
Ivan Maidanski [Wed, 4 Jun 2014 19:35:09 +0000 (23:35 +0400)]
Update ChangeLog file (related to 7.5.0)

10 years agoUpdate ChangeLog file
Ivan Maidanski [Mon, 2 Jun 2014 22:23:10 +0000 (02:23 +0400)]
Update ChangeLog file

10 years agoFix 'op_sz variable unused' warning in GC_core_finalized_malloc
Ivan Maidanski [Sat, 31 May 2014 09:40:23 +0000 (13:40 +0400)]
Fix 'op_sz variable unused' warning in GC_core_finalized_malloc
(fix commit 2a3cef3)

* fnlz_mlc.c (GC_core_finalized_malloc): Remove "op_sz" local variable.

10 years agoFix crash when using GC_malloc_many() as first allocation call
Bruce Hoult [Thu, 29 May 2014 06:16:50 +0000 (18:16 +1200)]
Fix crash when using GC_malloc_many() as first allocation call

* mallocx.c (GC_CALL GC_generic_malloc_many): Do not dereference
ok_reclaim_list if it is NULL.

10 years agoFix GC_finalized_malloc failure on disclaim_test
Petter Urkedal [Sun, 25 May 2014 13:57:03 +0000 (15:57 +0200)]
Fix GC_finalized_malloc failure on disclaim_test
(revert part of commit 63fd11d)

The finalizer closure is placed in the first word in order to use the
lower bits to distinguish live objects from objects on the free list.
The downside of this is that we need one-word offset interior pointers,
and that GC_base does not return the start of the user region.

* fnlz_mlc.c (GC_finalized_disclaim): Move finalizer closure for
finalized object kinds back to the start of objects.
* fnlz_mlc.c (GC_init_finalized_malloc): Call
GC_register_displacement_inner() as GC_finalized_malloc returns
displaced pointer.
* fnlz_mlc.c (GC_core_finalized_malloc, GC_finalized_malloc): Store
fclos in first word of created object (instead of the last word);
return pointer to object displaced by 1 word.

10 years agoUse magic header on objects to improve disclaim_test
Petter Urkedal [Mon, 19 May 2014 20:36:55 +0000 (22:36 +0200)]
Use magic header on objects to improve disclaim_test

* tests/disclaim_test.c (my_assert): Call fflush().
* tests/disclaim_test.c (pair_s): Replace is_valid with "magic" field.
* tests/disclaim_test.c (pair_magic): New const static variable.
* tests/disclaim_test.c (is_pair): New function.
* tests/disclaim_test.c (pair_dct, pair_new): Set "magic" field and
use is_pair() instead of is_valid for assertion checking.

10 years agoFix PARALLEL_MARK for Windows 7+
Ivan Maidanski [Thu, 29 May 2014 19:32:45 +0000 (23:32 +0400)]
Fix PARALLEL_MARK for Windows 7+
(revert part of commit f1b257a)

* doc/README.macros (DONT_USE_SIGNALANDWAIT): Remove.
* win32_threads.c (DONT_USE_SIGNALANDWAIT, GC_mark_mutex_waitcnt,
SignalObjectAndWait_type, signalObjectAndWait_func): Likewise.
* win32_threads.c (GC_marker_cv, GC_mark_thread, start_mark_threads,
GC_mark_mutex_state, GC_acquire_mark_lock, GC_release_mark_lock,
GC_wait_marker, GC_notify_all_marker, GC_thr_init): Do not check
DONT_USE_SIGNALANDWAIT macro (assume it is always on as multi-core
marker based on NT SignalObjectAndWait is broken in Windows 7+ leading
to a deadlock sometimes because the function is no longer atomic).

10 years agoFix 'Array subscript is above array bounds' GCC warning in GC_new_kind/proc
Ivan Maidanski [Wed, 28 May 2014 20:46:21 +0000 (00:46 +0400)]
Fix 'Array subscript is above array bounds' GCC warning in GC_new_kind/proc

* misc.c (GC_new_kind_inner, GC_new_proc_inner): Move ABORT call so
that to be immediately followed by return (to workaround
"array subscript is above array bounds" warning reported by MinGW
GCC 4.5.2); do not increase elements count in case of overflow.

10 years ago.gitignore: Ignore all .deps, .dirstamp
Ivan Maidanski [Wed, 28 May 2014 17:59:47 +0000 (21:59 +0400)]
.gitignore: Ignore all .deps, .dirstamp

10 years agoUpdate TODO (Android 'gold' linker issue fixed in b746e63)
Ivan Maidanski [Mon, 26 May 2014 20:07:32 +0000 (00:07 +0400)]
Update TODO (Android 'gold' linker issue fixed in b746e63)

10 years agoUpdate ChangeLog file (related to 7.5.0)
Ivan Maidanski [Sun, 25 May 2014 20:09:56 +0000 (00:09 +0400)]
Update ChangeLog file (related to 7.5.0)

10 years agoUpdate ChangeLog file
Ivan Maidanski [Sun, 25 May 2014 20:03:39 +0000 (00:03 +0400)]
Update ChangeLog file

10 years agoUpdate AUTHORS file
Ivan Maidanski [Thu, 22 May 2014 22:17:26 +0000 (02:17 +0400)]
Update AUTHORS file

10 years agoFix (enable) Cygwin-64 build
Bernd Edlinger [Thu, 22 May 2014 21:53:21 +0000 (01:53 +0400)]
Fix (enable) Cygwin-64 build

* include/gc.h (GC_DATASTART, GC_DATAEND): Define for Cygwin-64.
* include/private/gcconfig.h (X86_64): Likewise.
* include/private/gcconfig.h (OS_TYPE, DATASTART, DATAEND, STACK_GRAN,
NEED_FIND_LIMIT, USE_MMAP_ANON): Define for Cygwin-64 (code copied
from Cygwin-32 block).
* os_dep.c (GC_get_stack_base): Get the stack base for Cygwin-64
(implementation based on NtCurrentTeb call).

10 years agoFix 'source file in a subdirectory' Automake warnings
Ivan Maidanski [Thu, 22 May 2014 20:21:23 +0000 (00:21 +0400)]
Fix 'source file in a subdirectory' Automake warnings

* configure.ac (AM_INIT_AUTOMAKE): Enable subdir-objects (to avoid
future incompatibilities as "cord" and "tests" source files are in
subdirectories).

10 years agoRefine description in README how to build from source repository
Ivan Maidanski [Sun, 18 May 2014 07:37:01 +0000 (11:37 +0400)]
Refine description in README how to build from source repository

10 years agoMerge pull request #44 from jric/master
Ivan Maidanski [Sun, 18 May 2014 06:53:16 +0000 (23:53 -0700)]
Merge pull request #44 from jric/master

Added instructions to README.md for building from git.

10 years agoMerge branch 'ancient-releases'
Ivan Maidanski [Sat, 17 May 2014 15:01:45 +0000 (19:01 +0400)]
Merge branch 'ancient-releases'

10 years agogc6.3alpha6 tarball import gc6_3alpha6
Hans Boehm [Thu, 6 May 2004 00:00:00 +0000 (00:00 +0000)]
gc6.3alpha6 tarball import

10 years agoMerge tag 'gc6_3alpha5' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 14:52:39 +0000 (18:52 +0400)]
Merge tag 'gc6_3alpha5' into ancient-releases

10 years agogc6.2alpha6 tarball import gc6_2alpha6
Hans Boehm [Thu, 5 Jun 2003 00:00:00 +0000 (00:00 +0000)]
gc6.2alpha6 tarball import

10 years agogc6.2alpha5 tarball import gc6_2alpha5
Hans Boehm [Wed, 14 May 2003 00:00:00 +0000 (00:00 +0000)]
gc6.2alpha5 tarball import

10 years agogc6.2alpha4 tarball import gc6_2alpha4
Hans Boehm [Mon, 10 Mar 2003 00:00:00 +0000 (00:00 +0000)]
gc6.2alpha4 tarball import

10 years agogc6.2alpha3 tarball import gc6_2alpha3
Hans Boehm [Thu, 30 Jan 2003 00:00:00 +0000 (00:00 +0000)]
gc6.2alpha3 tarball import

10 years agoMerge tag 'gc6_1' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 14:37:27 +0000 (18:37 +0400)]
Merge tag 'gc6_1' into ancient-releases

10 years agogc6.1alpha2 tarball import gc6_1alpha2
Hans Boehm [Thu, 20 Dec 2001 00:00:00 +0000 (00:00 +0000)]
gc6.1alpha2 tarball import

10 years agogc6.1alpha1 tarball import gc6_1alpha1
Hans Boehm [Sat, 22 Sep 2001 00:00:00 +0000 (00:00 +0000)]
gc6.1alpha1 tarball import

10 years agoMerge tag 'gc6_0' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 14:30:04 +0000 (18:30 +0400)]
Merge tag 'gc6_0' into ancient-releases

10 years agogc6.0alpha8 tarball import gc6_0alpha8
Hans Boehm [Fri, 15 Jun 2001 00:00:00 +0000 (00:00 +0000)]
gc6.0alpha8 tarball import

10 years agogc6.0alpha3 tarball import gc6_0alpha3
Hans Boehm [Tue, 26 Sep 2000 00:00:00 +0000 (00:00 +0000)]
gc6.0alpha3 tarball import

10 years agoMerge tag 'gc5_3' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 14:10:33 +0000 (18:10 +0400)]
Merge tag 'gc5_3' into ancient-releases

10 years agogc5.0alpha4 tarball import gc5_0alpha4
Hans Boehm [Sat, 30 Oct 1999 00:00:00 +0000 (00:00 +0000)]
gc5.0alpha4 tarball import

10 years agoMerge tag 'gc5_0alpha3' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 13:59:17 +0000 (17:59 +0400)]
Merge tag 'gc5_0alpha3' into ancient-releases

10 years agogc5.0alpha2 tarball import gc5_0alpha2
Hans Boehm [Fri, 23 Jul 1999 00:00:00 +0000 (00:00 +0000)]
gc5.0alpha2 tarball import

10 years agogc5.0alpha1 tarball import gc5_0alpha1
Hans Boehm [Wed, 30 Jun 1999 00:00:00 +0000 (00:00 +0000)]
gc5.0alpha1 tarball import

10 years agoMerge tag 'gc4_14' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 13:51:17 +0000 (17:51 +0400)]
Merge tag 'gc4_14' into ancient-releases

10 years agogc4.14alpha2 tarball import gc4_14alpha2
Hans Boehm [Fri, 26 Mar 1999 00:00:00 +0000 (00:00 +0000)]
gc4.14alpha2 tarball import

10 years agoMerge tag 'gc4_14alpha1' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 13:45:17 +0000 (17:45 +0400)]
Merge tag 'gc4_14alpha1' into ancient-releases

10 years agogc4.13alpha3 tarball import gc4_13alpha3
Hans Boehm [Tue, 8 Dec 1998 00:00:00 +0000 (00:00 +0000)]
gc4.13alpha3 tarball import

10 years agogc4.13alpha2 tarball import gc4_13alpha2
Hans Boehm [Sat, 8 Aug 1998 00:00:00 +0000 (00:00 +0000)]
gc4.13alpha2 tarball import

10 years agogc4.13alpha1 tarball import gc4_13alpha1
Hans Boehm [Tue, 17 Feb 1998 00:00:00 +0000 (00:00 +0000)]
gc4.13alpha1 tarball import

10 years agoMerge tag 'gc4_12' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 13:33:41 +0000 (17:33 +0400)]
Merge tag 'gc4_12' into ancient-releases

10 years agogc4.9 tarball import gc4_9
Hans Boehm [Mon, 12 Feb 1996 00:00:00 +0000 (00:00 +0000)]
gc4.9 tarball import

10 years agoMerge tag 'gc4_8' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 13:27:33 +0000 (17:27 +0400)]
Merge tag 'gc4_8' into ancient-releases

10 years agogc4.7 tarball import gc4_7
Hans Boehm [Sat, 18 Nov 1995 00:00:00 +0000 (00:00 +0000)]
gc4.7 tarball import

10 years agogc4.6 tarball import gc4_6
Hans Boehm [Thu, 9 Nov 1995 00:00:00 +0000 (00:00 +0000)]
gc4.6 tarball import

10 years agogc4.5 tarball import gc4_5
Hans Boehm [Wed, 14 Jun 1995 00:00:00 +0000 (00:00 +0000)]
gc4.5 tarball import

10 years agogc4.4 tarball import gc4_4
Hans Boehm [Sat, 18 Feb 1995 00:00:00 +0000 (00:00 +0000)]
gc4.4 tarball import

10 years agogc4.3 tarball import gc4_3
Hans Boehm [Fri, 23 Dec 1994 00:00:00 +0000 (00:00 +0000)]
gc4.3 tarball import

10 years agogc4.2 tarball import gc4_2
Hans Boehm [Wed, 3 Aug 1994 00:00:00 +0000 (00:00 +0000)]
gc4.2 tarball import

10 years agoMerge tag 'gc4_1' into ancient-releases
Ivan Maidanski [Sat, 17 May 2014 13:04:42 +0000 (17:04 +0400)]
Merge tag 'gc4_1' into ancient-releases

10 years agogc4.0 tarball import gc4_0
Hans Boehm [Thu, 7 Apr 1994 00:00:00 +0000 (00:00 +0000)]
gc4.0 tarball import

10 years agogc3.7 tarball import gc3_7
Hans Boehm [Tue, 15 Mar 1994 00:00:00 +0000 (00:00 +0000)]
gc3.7 tarball import

10 years agogc3.6 tarball import gc3_6
Hans Boehm [Fri, 14 Jan 1994 00:00:00 +0000 (00:00 +0000)]
gc3.6 tarball import

10 years agogc3.3 tarball import gc3_3
Hans Boehm [Sat, 2 Oct 1993 00:00:00 +0000 (00:00 +0000)]
gc3.3 tarball import

10 years agogc2.6 tarball import gc2_6
Hans Boehm [Tue, 27 Apr 1993 00:00:00 +0000 (00:00 +0000)]
gc2.6 tarball import

10 years agogc-2.4 tarball import gc2_4
Hans Boehm [Tue, 26 Jan 1993 00:00:00 +0000 (00:00 +0000)]
gc-2.4 tarball import

10 years agogc1.9 tarball import gc1_9
Hans Boehm [Wed, 29 Jan 1992 00:00:00 +0000 (00:00 +0000)]
gc1.9 tarball import

10 years agoFix typos in ChangeLog (in items for ancient GC releases)
Ivan Maidanski [Fri, 16 May 2014 19:31:38 +0000 (23:31 +0400)]
Fix typos in ChangeLog (in items for ancient GC releases)

* ChangeLog: Fix typos ("nonexistent", "to", "posting", "bit rot",
"likely", "flaky").
* ChangeLog: Fix typos in surname (Juan Jose Garcia-Ripoll,
Paolo Molaro, Andreas Tobler).
* ChangeLog: Fix incorrect article ("a finalizable").

10 years agoUpdate AUTHORS file (add more persons mentioned in ChangeLog)
Ivan Maidanski [Thu, 15 May 2014 22:25:18 +0000 (02:25 +0400)]
Update AUTHORS file (add more persons mentioned in ChangeLog)

10 years agoRestore contribution information for ancient releases in ChangeLog
Ivan Maidanski [Thu, 15 May 2014 22:21:00 +0000 (02:21 +0400)]
Restore contribution information for ancient releases in ChangeLog
(revert part of commit ba8ef9e)

10 years agoUpdate AUTHORS file (specify email for some more contributors)
Ivan Maidanski [Thu, 15 May 2014 18:35:25 +0000 (22:35 +0400)]
Update AUTHORS file (specify email for some more contributors)

10 years agoFix typo in person name in gc_cpp.h comment
Ivan Maidanski [Thu, 15 May 2014 17:41:21 +0000 (21:41 +0400)]
Fix typo in person name in gc_cpp.h comment

* include/gc_cpp.h: Fix typo in surname (John Ellis) in comment.

10 years agoUpdate Xerox FTP host name in overview.html
Ivan Maidanski [Thu, 15 May 2014 17:30:10 +0000 (21:30 +0400)]
Update Xerox FTP host name in overview.html

* doc/overview.html: Update FTP host name (ftp.parc.xerox.com).

10 years agoAdded instructions to README.md for building from git.
Joshua Richardson [Tue, 13 May 2014 17:20:17 +0000 (10:20 -0700)]
Added instructions to README.md for building from git.

10 years agoChangeLog: Add information about ancient release dates
Ivan Maidanski [Mon, 12 May 2014 04:48:59 +0000 (08:48 +0400)]
ChangeLog: Add information about ancient release dates

10 years agoRemove duplicate entry and non-contributor persons from AUTHORS file
Ivan Maidanski [Fri, 9 May 2014 11:28:38 +0000 (15:28 +0400)]
Remove duplicate entry and non-contributor persons from AUTHORS file
(remove entries occasionally leaked from GCC and Mono downstreams;
revert part of commits e1dc74a7b23e1c8a8747eb89)

10 years agoUpdate AUTHORS file (specify email for most contributors)
Ivan Maidanski [Sat, 3 May 2014 20:30:13 +0000 (00:30 +0400)]
Update AUTHORS file (specify email for most contributors)

10 years agoFix typos in names in AUTHORS and ChangeLog files
Ivan Maidanski [Sat, 3 May 2014 18:50:50 +0000 (22:50 +0400)]
Fix typos in names in AUTHORS and ChangeLog files

* AUTHORS: Fix typo in surname (Bryce McKinlay, Slava Sysoltsev).
* ChangeLog: Likewise.
* AUTHORS: Fix typo in name or surname (Philip Brown, Rutger Ovidius).
* AUTHORS: Place surname after 1st name (Tommaso Tagliapietra).
* AUTHORS: Remove computer system name (Harris NightHawk).

10 years agoUpdate AUTHORS file
Ivan Maidanski [Sat, 3 May 2014 05:47:50 +0000 (09:47 +0400)]
Update AUTHORS file

10 years agoRemove obsolete BACKING_STORE_ALIGNMENT/DISPLACEMENT macros for Linux/IA64
Ivan Maidanski [Fri, 2 May 2014 19:51:21 +0000 (23:51 +0400)]
Remove obsolete BACKING_STORE_ALIGNMENT/DISPLACEMENT macros for Linux/IA64

* include/private/gcconfig.h (BACKING_STORE_ALIGNMENT,
BACKING_STORE_DISPLACEMENT): Remove unused macro for linux/ia64;
update adjacent comment.

10 years agoFix machdep .lo files path in configure (SPARC, IA-64)
Ivan Maidanski [Sun, 27 Apr 2014 06:36:21 +0000 (10:36 +0400)]
Fix machdep .lo files path in configure (SPARC, IA-64)

* configure.ac (machdep): Remove "src/" path prefix for .lo files
(sparc_netbsd_mach_dep, sparc_mach_dep, ia64_save_regs_in_stack).

10 years agoFix build (broken by fenv.h inclusion) on Linux/x86_64 under uClibc
Baruch Siach [Sat, 26 Apr 2014 17:50:07 +0000 (21:50 +0400)]
Fix build (broken by fenv.h inclusion) on Linux/x86_64 under uClibc

* include/private/gcconfig.h (GETCONTEXT_FPU_EXCMASK_BUG): Do not
define for uClibc, as it may not have fenv.h.

10 years agoFix TEXT() usage for concatenated strings in GC_CreateLogFile (Win32)
Ivan Maidanski [Tue, 22 Apr 2014 22:04:11 +0000 (02:04 +0400)]
Fix TEXT() usage for concatenated strings in GC_CreateLogFile (Win32)

* misc.c (GC_CreateLogFile): Use TEXT() for each of concatenated
literals (fix "concatenating mismatched strings" error if UNICODE
defined).

10 years agoFix MS VC redefinition warning for functions declared with GC_ATTR_MALLOC
Ivan Maidanski [Tue, 22 Apr 2014 21:28:32 +0000 (01:28 +0400)]
Fix MS VC redefinition warning for functions declared with GC_ATTR_MALLOC

* dbg_mlc.c (GC_debug_malloc, GC_debug_malloc_ignore_off_page,
GC_debug_malloc_atomic_ignore_off_page, GC_debug_malloc_stubborn,
GC_debug_malloc_atomic, GC_debug_strdup, GC_debug_strndup,
GC_debug_wcsdup, GC_debug_malloc_uncollectable,
GC_debug_malloc_atomic_uncollectable,
GC_debug_generic_or_special_malloc, GC_debug_malloc_replacement): Add
GC_ATTR_MALLOC attribute to API function definition (to avoid MS VC
warning about redefinition of a symbol previously declared with
__declspec).
* fnlz_mlc.c (GC_finalized_malloc): Likewise.
* gcj_mlc.c (GC_gcj_malloc, GC_debug_gcj_malloc,
GC_gcj_malloc_ignore_off_page): Likewise.
* malloc.c (GC_generic_malloc, GC_malloc_atomic, GC_malloc,
GC_malloc_uncollectable): Likewise.
* mallocx.c (GC_generic_or_special_malloc,
GC_generic_malloc_ignore_off_page, GC_malloc_ignore_off_page,
GC_malloc_atomic_ignore_off_page, GC_malloc_many, GC_memalign,
GC_malloc_atomic_uncollectable, GC_strdup, GC_strndup, GC_wcsdup):
Likewise.
* stubborn.c (GC_malloc_stubborn): Likewise.
* thread_local_alloc.c (GC_malloc, GC_malloc_atomic, GC_gcj_malloc):
Likewise.
* typd_mlc.c (GC_malloc_explicitly_typed,
GC_malloc_explicitly_typed_ignore_off_page,
GC_calloc_explicitly_typed): Likewise.

10 years agoFix a typo in gc_config_macros.h comment (redundant "an" article)
Ivan Maidanski [Mon, 31 Mar 2014 22:07:05 +0000 (02:07 +0400)]
Fix a typo in gc_config_macros.h comment (redundant "an" article)

* include/gc_config_macros.h (GC_ADD_CALLER): Fix a typo in comment
(redundant "an" article).

10 years agoGC_scratch_alloc code refactoring (and WARN message improvement)
Ivan Maidanski [Mon, 31 Mar 2014 21:25:18 +0000 (01:25 +0400)]
GC_scratch_alloc code refactoring (and WARN message improvement)

* headers.c (GC_scratch_alloc): Remove "register" keyword for "result"
local variable; replace tail recursion with a loop; adjust and add
comments.
* headers.c (GC_scratch_alloc): Adjust message and output requested
allocation size in WARN().
* include/private/gc_priv.h (_GC_arrays._scratch_last_end_ptr):
Improve comment.

10 years agoFix GC_scratch_last_end_ptr update on GC_scratch_alloc failure
Ivan Maidanski [Sun, 30 Mar 2014 17:05:35 +0000 (21:05 +0400)]
Fix GC_scratch_last_end_ptr update on GC_scratch_alloc failure

* headers.c (GC_scratch_alloc): Do not update GC_scratch_last_end_ptr
if allocation failed ("result" variable is NULL).

10 years agoFix out-of-memory case in new_back_edges, push_in_progress (backgraph)
Ivan Maidanski [Sun, 30 Mar 2014 08:53:48 +0000 (12:53 +0400)]
Fix out-of-memory case in new_back_edges, push_in_progress (backgraph)

* backgraph.c (new_back_edges): Abort if not enough memory.
* backgraph.c (push_in_progress): Prevent null pointer dereference in
BCOPY() if allocation failed (due to not enough memory).

10 years agoFix GET_MEM argument rounding in GC_scratch_alloc and similar
Ivan Maidanski [Sun, 30 Mar 2014 08:31:49 +0000 (12:31 +0400)]
Fix GET_MEM argument rounding in GC_scratch_alloc and similar
(Prevent abort in GC_unix_mmap_get_mem if the allocation size is not
a multiple of a page size.)

* backgraph.c (new_back_edges, push_in_progress): Use
ROUNDUP_PAGESIZE_IF_MMAP() to adjust GET_MEM() argument (when needed).
* headers.c (GC_scratch_alloc): Likewise.
* misc.c (GC_envfile_init): Likewise.
* include/private/gc_priv.h (ROUNDUP_PAGESIZE_IF_MMAP): New macro.
* include/private/gcconfig.h (MMAP_SUPPORTED): Move definition from
os_dep.c (as needed for ROUNDUP_PAGESIZE_IF_MMAP() definition).
* include/private/gcconfig.h (GET_MEM): Refine comment (regarding its
argument).

10 years agoDefine ROUNDUP_PAGESIZE, ROUNDUP_GRANULE_SIZE macros (code refactoring)
Ivan Maidanski [Sun, 30 Mar 2014 07:24:12 +0000 (11:24 +0400)]
Define ROUNDUP_PAGESIZE, ROUNDUP_GRANULE_SIZE macros (code refactoring)

* alloc.c (GC_expand_hp_inner): Use ROUNDUP_PAGESIZE().
* checksums.c (GC_record_fault, GC_was_faulted): Likewise.
* os_dep.c (GC_unix_mmap_get_mem, GC_wince_get_mem, GC_unmap_start,
GC_remove_protection): Likewise.
* headers.c (GC_scratch_alloc): Use ROUNDUP_GRANULE_SIZE().
* malloc.c (GC_alloc_large): Likewise.
* mallocx.c (GC_malloc_many): Likewise.
* headers.c (GC_scratch_alloc): Use ROUNDUP_PAGESIZE() (only if
USE_MMAP).
* include/private/gc_priv.h (ROUNDUP_GRANULE_SIZE, ROUNDUP_PAGESIZE):
Define macro to round up a value to a multiple of a granule or a page,
respectively.

10 years agoDefine public GC_GENERIC_OR_SPECIAL_MALLOC and GC_get_kind_and_size
Ivan Maidanski [Mon, 10 Mar 2014 16:04:58 +0000 (20:04 +0400)]
Define public GC_GENERIC_OR_SPECIAL_MALLOC and GC_get_kind_and_size

* dbg_mlc.c (GC_debug_generic_malloc,
GC_debug_generic_or_special_malloc): New function.
* mallocx.c (GC_get_kind_and_size): Likewise.
* tests/test.c (test_generic_malloc_or_special): Likewise.
* include/gc_mark.h (GC_generic_or_special_malloc,
GC_debug_generic_or_special_malloc, GC_get_kind_and_size): New API
prototype.
* include/gc_mark.h (GC_GENERIC_OR_SPECIAL_MALLOC): New public macro.
* mallocx.c (GC_generic_or_special_malloc): Turn into API function.
* tests/test.c (reverse_test_inner, run_one_test): Invoke
test_generic_malloc_or_special (to test GC_GENERIC_OR_SPECIAL_MALLOC
and GC_get_kind_and_size).

10 years agoAdd alloc_size attribute to GC_generic_malloc
Ivan Maidanski [Mon, 10 Mar 2014 07:20:22 +0000 (11:20 +0400)]
Add alloc_size attribute to GC_generic_malloc

* include/gc_mark.h (GC_generic_malloc,
GC_generic_malloc_ignore_off_page): Add GC_ATTR_ALLOC_SIZE attribute.

10 years agoUpdate emails/links due to project site and ML transition
Ivan Maidanski [Sun, 23 Feb 2014 12:56:54 +0000 (16:56 +0400)]
Update emails/links due to project site and ML transition
(www.hpl.hp.com/personal/Hans_Boehm -> www.hboehm.info;
gc@linux.hpl.hp.com -> bdwgc@lists.opendylan.org)

* AUTHORS: Update email.
* doc/gc.man: Likewise.
* README.QUICK: Change external link to gcinterface.html to local one
(pointing to the file in "doc" folder).
* README.md: Replace BDWGC site URL (www.hpl.hp.com/personal/Hans_Boehm
to www.hboehm.info).
* doc/gc.man: Likewise.
* doc/gcdescr.html: Likewise.
* doc/gcinterface.html: Likewise.
* doc/overview.html: Likewise.
* doc/scale.html: Likewise.
* README.md: Update mailing list info (gc@linux.hpl.hp.com to
bdwgc@lists.opendylan.org, gc-announce@linux.hpl.hp.com to
bdwgc-announce@lists.opendylan.org).
* configure.ac: Likewise.
* doc/gcdescr.html: Likewise.
* doc/overview.html: Likewise.
* doc/tree.html: Remove unnecessary external link.

10 years agoFix or remove broken URLs in documentation
Ivan Maidanski [Sun, 23 Feb 2014 08:53:55 +0000 (12:53 +0400)]
Fix or remove broken URLs in documentation

* doc/README.cords: Remove broken link to reality.sgi.com.
* doc/README.environment: Fix link to HPL tech reports.
* doc/overview.html: Remove broken link to parcftp.xerox.com.
* doc/overview.html: Fix (or update) external links.

10 years agoFix typo in GC overview file
Ivan Maidanski [Sat, 22 Feb 2014 17:26:13 +0000 (21:26 +0400)]
Fix typo in GC overview file

* doc/overview.html: Fix a typo ("See").

10 years agoRemove redundant casts in GC_generic_or_special_malloc and similar
Ivan Maidanski [Mon, 17 Feb 2014 20:50:14 +0000 (00:50 +0400)]
Remove redundant casts in GC_generic_or_special_malloc and similar
(refactoring)

* mallocx.c (GC_generic_or_special_malloc,
GC_generic_malloc_ignore_off_page): Remove redundant casts for
"lb" argument; remove redundant parentheses.
* fnlz_mlc.c (GC_finalized_malloc): Likewise.
* malloc.c (GC_generic_malloc, GC_malloc_uncollectable): Likewise.
* malloc.c (GC_malloc_uncollectable): Remove redundant cast of
returned value.
* mallocx.c (GC_malloc_ignore_off_page,
GC_malloc_atomic_ignore_off_page): Likewise.

10 years agocord: Change no-argument functions declaration style to ANSI C
Ivan Maidanski [Sun, 16 Feb 2014 16:46:58 +0000 (20:46 +0400)]
cord: Change no-argument functions declaration style to ANSI C

* cord/cordbscs.c (CORD_init_min_len): Use ANSI C style of no-argument
function prototype.
* cord/tests/de.c (prune_map, normalize_display, fix_pos): Likewise.

10 years agoFix GC_sig_suspend initialization when non-constant SIGRTMIN used
Ivan Maidanski [Fri, 31 Jan 2014 20:32:08 +0000 (00:32 +0400)]
Fix GC_sig_suspend initialization when non-constant SIGRTMIN used

* pthread_stop_world.c (SIGNAL_UNSET): New macro.
* pthread_stop_world.c (GC_sig_suspend, GC_sig_thr_restart): Initialize
to SIGNAL_UNSET (instead of SIG_SUSPEND/THR_RESTART).
* pthread_stop_world.c (GC_get_suspend_signal): Return SIG_SUSPEND if
GC_sig_suspend is SIGNAL_UNSET.
* pthread_stop_world.c (GC_get_thr_restart_signal): Return
SIG_THR_RESTART if GC_sig_thr_restart is SIGNAL_UNSET.
* pthread_stop_world.c (GC_unblock_gc_signals): Add assertion for
initialization of GC_sig_suspend and GC_sig_thr_restart.
* pthread_stop_world.c (GC_stop_init): Replace SIGNAL_UNSET value for
GC_sig_suspend, GC_sig_thr_restart to SIG_SUSPEND and SIG_THR_RESTART,
respectively.

10 years agoFix 'e.g.' typos in comments and documentation
Ivan Maidanski [Fri, 31 Jan 2014 17:04:28 +0000 (21:04 +0400)]
Fix 'e.g.' typos in comments and documentation

* doc/README.cmake: Fix typo (e.g.).
* doc/README.solaris2: Likewise.
* doc/README.solaris2: Likewise.
* doc/README.win32: Likewise.
* include/gc.h (GC_register_my_thread): Fix typo in a comment (e.g.).
* include/leak_detector.h: Likewise.
* misc.c (GC_VSNPRINTF): Likewise.
* pthread_stop_world.c (GC_unblock_gc_signals): Likewise.

10 years agoImprove documentation for disappearing links in gc.h
Ivan Maidanski [Fri, 31 Jan 2014 16:01:06 +0000 (20:01 +0400)]
Improve documentation for disappearing links in gc.h

* include/gc.h (GC_free): Add comment about disappearing links.
* include/gc.h (GC_general_register_disappearing_link): Add comment
about the conditions for a link to disappear.