]> granicus.if.org Git - gc/commitdiff
Replace GC_DBG_RA with GC_DBG_EXTRAS macro
authorIvan Maidanski <ivmai@mail.ru>
Fri, 23 Aug 2013 19:42:26 +0000 (23:42 +0400)
committerIvan Maidanski <ivmai@mail.ru>
Sat, 24 Aug 2013 07:03:44 +0000 (11:03 +0400)
* dbg_mlc.c (GC_debug_malloc_replacement,
GC_debug_realloc_replacement): Use GC_DBG_EXTRAS (instead of
"GC_DBG_RA NULL, 0").
* malloc.c (GC_debug_malloc_replacement): Likewise.
* mallocx.c (GC_debug_realloc_replacement): Likewise.
* include/private/gc_priv.h (GC_DBG_EXTRAS): New macro (similar to
GC_EXTRAS but pass NULL/0 instead of __FILE__and __LINE__);
pass "unknown" instead of NULL unless GC_ADD_CALLER.
* include/private/gc_priv.h (GC_DBG_RA): Remove.

dbg_mlc.c
include/private/gc_priv.h
malloc.c
mallocx.c

index c643a02bbe8aef36343df3ae3c402b3caf9d5646..4c0de73c203e14a55e70776536f10c2d73424018 100644 (file)
--- a/dbg_mlc.c
+++ b/dbg_mlc.c
@@ -1198,10 +1198,10 @@ GC_API void GC_CALL GC_debug_register_finalizer_ignore_self
 
 GC_API void * GC_CALL GC_debug_malloc_replacement(size_t lb)
 {
-    return GC_debug_malloc(lb, GC_DBG_RA NULL, 0);
+    return GC_debug_malloc(lb, GC_DBG_EXTRAS);
 }
 
 GC_API void * GC_CALL GC_debug_realloc_replacement(void *p, size_t lb)
 {
-    return GC_debug_realloc(p, lb, GC_DBG_RA NULL, 0);
+    return GC_debug_realloc(p, lb, GC_DBG_EXTRAS);
 }
index 49e68d2142db5c16d1e2305201ae745bec22c0af..575a319ab1600427a40fc6f5b149c66703fb08d8 100644 (file)
@@ -1715,13 +1715,16 @@ GC_INNER ptr_t GC_allocobj(size_t sz, int kind);
                                 /* head.  Sz is in granules.            */
 
 #ifdef GC_ADD_CALLER
+  /* GC_DBG_EXTRAS is used by GC debug API functions (unlike GC_EXTRAS  */
+  /* used by GC debug API macros) thus GC_RETURN_ADDR_PARENT (pointing  */
+  /* to client caller) should be used if possible.                      */
 # ifdef GC_RETURN_ADDR_PARENT
-#  define GC_DBG_RA GC_RETURN_ADDR_PARENT,
+#  define GC_DBG_EXTRAS GC_RETURN_ADDR_PARENT, NULL, 0
 # else
-#  define GC_DBG_RA GC_RETURN_ADDR,
+#  define GC_DBG_EXTRAS GC_RETURN_ADDR, NULL, 0
 # endif
 #else
-# define GC_DBG_RA /* empty */
+# define GC_DBG_EXTRAS "unknown", 0
 #endif
 
 /* We make the GC_clear_stack() call a tail one, hoping to get more of  */
index b62193a9ae1d47758e8718be0e6650da96da96ea..801234712372d29fe192fdf57f80ba925c30a162 100644 (file)
--- a/malloc.c
+++ b/malloc.c
@@ -329,8 +329,7 @@ GC_API void * GC_CALL GC_malloc_uncollectable(size_t lb)
 /* malloc replacements.  Otherwise we end up saving a                   */
 /* meaningless return address in the object.  It also speeds things up, */
 /* but it is admittedly quite ugly.                                     */
-# define GC_debug_malloc_replacement(lb) \
-                        GC_debug_malloc(lb, GC_DBG_RA NULL, 0)
+# define GC_debug_malloc_replacement(lb) GC_debug_malloc(lb, GC_DBG_EXTRAS)
 
 void * malloc(size_t lb)
 {
index ee99d0fd929fef87543d0d8c8bd26d7bd0773f05..bfc711692f17c4685ec83d199eda64f6e1a9d6e2 100644 (file)
--- a/mallocx.c
+++ b/mallocx.c
@@ -154,7 +154,7 @@ GC_API void * GC_CALL GC_realloc(void * p, size_t lb)
 
 /* As with malloc, avoid two levels of extra calls here.        */
 # define GC_debug_realloc_replacement(p, lb) \
-        GC_debug_realloc(p, lb, GC_DBG_RA NULL, 0)
+        GC_debug_realloc(p, lb, GC_DBG_EXTRAS)
 
 void * realloc(void * p, size_t lb)
   {