]> granicus.if.org Git - gc/commitdiff
Fix undefined PTRFREE/NORMAL in gc_inline.h
authorIvan Maidanski <ivmai@mail.ru>
Mon, 28 Dec 2015 17:24:33 +0000 (20:24 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Mon, 28 Dec 2015 17:24:33 +0000 (20:24 +0300)
Allow to use gc_inline.h public header without include gc_priv.h.

* include/gc_inline.h (GC_I_PTRFREE, GC_I_NORMAL): New macro.
* include/gc_inline.h (GC_FAST_MALLOC_GRANS, GC_MALLOC_WORDS,
GC_MALLOC_ATOMIC_WORDS, GC_CONS): Use GC_I_PTRFREE and GC_I_NORMAL
instead of PTRFREE and NORMAL (private macros), respectively.

include/gc_inline.h

index 5c49e0e5ff68499ea857ca90c9ba81fe56f4a985..db1b2718033a4a2b4f051064e79f48ddcf01d2f8 100644 (file)
 # define GC_PREFETCH_FOR_WRITE(x) (void)0
 #endif
 
+/* Object kinds; must match PTRFREE, NORMAL in gc_priv.h.       */
+#define GC_I_PTRFREE 0
+#define GC_I_NORMAL 1
+
 /* Store a pointer to a list of newly allocated objects of kind k and   */
 /* size lb in *result.  The caller must make sure that *result is       */
 /* traced even if objects are ptrfree.                                  */
@@ -89,7 +93,8 @@ GC_API void GC_CALL GC_generic_malloc_many(size_t /* lb */, int /* k */,
                 init; \
                 GC_PREFETCH_FOR_WRITE(next); \
                 GC_ASSERT(GC_size(result) >= (granules)*GC_GRANULE_BYTES); \
-                GC_ASSERT((kind) == PTRFREE || ((GC_word *)result)[1] == 0); \
+                GC_ASSERT((kind) == GC_I_PTRFREE \
+                          || ((GC_word *)result)[1] == 0); \
                 break; \
             } \
             /* Entry contains counter or NULL */ \
@@ -126,16 +131,16 @@ GC_API void GC_CALL GC_generic_malloc_many(size_t /* lb */, int /* k */,
 # define GC_MALLOC_WORDS(result,n,tiny_fl) \
   do { \
     size_t grans = GC_WORDS_TO_WHOLE_GRANULES(n); \
-    GC_FAST_MALLOC_GRANS(result, grans, tiny_fl, 0, \
-                         NORMAL, GC_malloc(grans*GC_GRANULE_BYTES), \
+    GC_FAST_MALLOC_GRANS(result, grans, tiny_fl, 0, GC_I_NORMAL, \
+                         GC_malloc(grans * GC_GRANULE_BYTES), \
                          *(void **)(result) = 0); \
   } while (0)
 
 # define GC_MALLOC_ATOMIC_WORDS(result,n,tiny_fl) \
   do { \
     size_t grans = GC_WORDS_TO_WHOLE_GRANULES(n); \
-    GC_FAST_MALLOC_GRANS(result, grans, tiny_fl, 0, \
-                         PTRFREE, GC_malloc_atomic(grans*GC_GRANULE_BYTES), \
+    GC_FAST_MALLOC_GRANS(result, grans, tiny_fl, 0, GC_I_PTRFREE, \
+                         GC_malloc_atomic(grans * GC_GRANULE_BYTES), \
                          (void)0 /* no initialization */); \
   } while (0)
 
@@ -143,8 +148,8 @@ GC_API void GC_CALL GC_generic_malloc_many(size_t /* lb */, int /* k */,
 # define GC_CONS(result, first, second, tiny_fl) \
   do { \
     size_t grans = GC_WORDS_TO_WHOLE_GRANULES(2); \
-    GC_FAST_MALLOC_GRANS(result, grans, tiny_fl, 0, \
-                         NORMAL, GC_malloc(grans*GC_GRANULE_BYTES), \
+    GC_FAST_MALLOC_GRANS(result, grans, tiny_fl, 0, GC_I_NORMAL, \
+                         GC_malloc(grans * GC_GRANULE_BYTES), \
                          *(void **)(result) = (void *)(first)); \
     ((void **)(result))[1] = (void *)(second); \
   } while (0)