diff options
-rw-r--r-- | Makefile.direct | 2 | ||||
-rw-r--r-- | include/gc_alloc_ptrs.h | 40 | ||||
-rw-r--r-- | include/include.am | 1 | ||||
-rw-r--r-- | include/new_gc_alloc.h | 13 | ||||
-rw-r--r-- | mallocx.c | 1 |
5 files changed, 44 insertions, 13 deletions
diff --git a/Makefile.direct b/Makefile.direct index 6fce4d50..80d4b9c7 100644 --- a/Makefile.direct +++ b/Makefile.direct @@ -106,7 +106,7 @@ SRCS= $(CSRCS) \ include/gc_inline.h include/gc_mark.h include/gc_disclaim.h \ tools/threadlibs.c tools/if_mach.c tools/if_not_there.c gc_cpp.cc \ include/gc_cpp.h include/weakpointer.h include/private/gc_locks.h \ - include/new_gc_alloc.h include/gc_allocator.h \ + include/new_gc_alloc.h include/gc_alloc_ptrs.h include/gc_allocator.h \ include/javaxfc.h \ include/gc_backptr.h include/gc_gcj.h include/private/dbg_mlc.h \ include/private/specific.h include/leak_detector.h \ diff --git a/include/gc_alloc_ptrs.h b/include/gc_alloc_ptrs.h new file mode 100644 index 00000000..4d559e5f --- /dev/null +++ b/include/gc_alloc_ptrs.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 1996-1998 by Silicon Graphics. All rights reserved. + * + * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED + * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + * + * Permission is hereby granted to use or copy this program + * for any purpose, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + */ + +/* This file should never be included by clients directly. */ + +#ifndef GC_ALLOC_PTRS_H +#define GC_ALLOC_PTRS_H + +#include "gc.h" + +#ifdef __cplusplus + extern "C" { +#endif + +GC_API void ** const GC_objfreelist_ptr; +GC_API void ** const GC_aobjfreelist_ptr; +GC_API void ** const GC_uobjfreelist_ptr; + +#ifdef GC_ATOMIC_UNCOLLECTABLE + GC_API void ** const GC_auobjfreelist_ptr; +#endif + +GC_API void GC_CALL GC_incr_bytes_allocd(size_t bytes); +GC_API void GC_CALL GC_incr_bytes_freed(size_t bytes); + +#ifdef __cplusplus + } /* extern "C" */ +#endif + +#endif /* GC_ALLOC_PTRS_H */ diff --git a/include/include.am b/include/include.am index 6dec292a..fe4e16b1 100644 --- a/include/include.am +++ b/include/include.am @@ -35,6 +35,7 @@ dist_noinst_HEADERS += \ include/cord.h \ include/cord_pos.h \ include/ec.h \ + include/gc_alloc_ptrs.h \ include/new_gc_alloc.h \ include/private/darwin_semaphore.h \ include/private/darwin_stop_world.h \ diff --git a/include/new_gc_alloc.h b/include/new_gc_alloc.h index 39dadfc6..866136b4 100644 --- a/include/new_gc_alloc.h +++ b/include/new_gc_alloc.h @@ -72,19 +72,8 @@ #include <stddef.h> #include <string.h> -// The following need to match collector data structures. // We can't include gc_priv.h, since that pulls in way too much stuff. -// This should eventually be factored out into another include file. - -extern "C" { - GC_API void ** const GC_objfreelist_ptr; - GC_API void ** const GC_aobjfreelist_ptr; - GC_API void ** const GC_uobjfreelist_ptr; - GC_API void ** const GC_auobjfreelist_ptr; - - GC_API void GC_CALL GC_incr_bytes_allocd(size_t bytes); - GC_API void GC_CALL GC_incr_bytes_freed(size_t bytes); -} +#include "gc_alloc_ptrs.h" #define GC_generic_malloc_words_small(lw, k) \ GC_generic_malloc((lw) * sizeof(GC_word), k) @@ -40,6 +40,7 @@ /* Some externally visible but unadvertised variables to allow access to */ /* free lists from inlined allocators without including gc_priv.h */ /* or introducing dependencies on internal data structure layouts. */ +#include "gc_alloc_ptrs.h" void ** const GC_objfreelist_ptr = GC_objfreelist; void ** const GC_aobjfreelist_ptr = GC_aobjfreelist; void ** const GC_uobjfreelist_ptr = GC_uobjfreelist; |