From eed566698034311c58eea585da1ddb5a6e0807fb Mon Sep 17 00:00:00 2001 From: Hans Boehm Date: Sat, 18 Aug 2001 01:01:51 +0000 Subject: [PATCH] boehm.cc: Include gc_local_alloc.h if appropriate. 2001-08-17 Hans-J. Boehm * boehm.cc: Include gc_local_alloc.h if appropriate. (GC_GENERIC_MALLOC): Don't define. (MAYBE_MARK): Redefine for GC 6.0. (_Jv_MarkObj): Mark class differently. (_Jv_AllocArray): Use GC_generic_malloc. From-SVN: r44993 --- libjava/ChangeLog | 8 ++++++++ libjava/boehm.cc | 21 ++++++++------------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 1567a3d1af71..9f42ad101b3e 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,11 @@ +2001-08-17 Hans-J. Boehm + + * boehm.cc: Include gc_local_alloc.h if appropriate. + (GC_GENERIC_MALLOC): Don't define. + (MAYBE_MARK): Redefine for GC 6.0. + (_Jv_MarkObj): Mark class differently. + (_Jv_AllocArray): Use GC_generic_malloc. + 2001-08-17 Mark J Roberts * java/math/BigInteger.java (randBytes): New method. diff --git a/libjava/boehm.cc b/libjava/boehm.cc index dcf99507b80e..7982eda09513 100644 --- a/libjava/boehm.cc +++ b/libjava/boehm.cc @@ -30,24 +30,19 @@ extern "C" #include #include +#ifdef THREAD_LOCAL_ALLOC +# define GC_REDIRECT_TO_LOCAL +# include +#endif + // These aren't declared in any Boehm GC header. void GC_finalize_all (void); ptr_t GC_debug_generic_malloc (size_t size, int k, GC_EXTRA_PARAMS); }; -// FIXME: this should probably be defined in some GC header. -#ifdef GC_DEBUG -# define GC_GENERIC_MALLOC(Size, Type) \ - GC_debug_generic_malloc (Size, Type, GC_EXTRAS) -#else -# define GC_GENERIC_MALLOC(Size, Type) GC_generic_malloc (Size, Type) -#endif - // We must check for plausibility ourselves. #define MAYBE_MARK(Obj, Top, Limit, Source, Exit) \ - if ((ptr_t) (Obj) >= GC_least_plausible_heap_addr \ - && (ptr_t) (Obj) <= GC_greatest_plausible_heap_addr) \ - PUSH_CONTENTS (Obj, Top, Limit, Source, Exit) + Top=GC_MARK_AND_PUSH((GC_PTR)Obj, Top, Limit, (GC_PTR *)Source) @@ -312,7 +307,7 @@ _Jv_MarkArray (void *addr, void *msp, void *msl, void * /*env*/) # endif // Mark the object's class. p = (ptr_t) klass; - MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, obj, o2label); + MAYBE_MARK (p, mark_stack_ptr, mark_stack_limit, &(dt -> clas), o2label); for (int i = 0; i < JvGetArrayLength (array); ++i) { @@ -374,7 +369,7 @@ _Jv_AllocArray (jsize size, jclass klass) if (size < min_heap_addr) obj = GC_MALLOC(size); else - obj = GC_GENERIC_MALLOC (size, array_kind_x); + obj = GC_generic_malloc (size, array_kind_x); #endif *((_Jv_VTable **) obj) = klass->vtable; return obj;