emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 3472666: Turn on GC_CHECK_MARKED_OBJECTS by default


From: Eli Zaretskii
Subject: [Emacs-diffs] master 3472666: Turn on GC_CHECK_MARKED_OBJECTS by default under ENABLE_CHECKING
Date: Sat, 6 May 2017 04:24:19 -0400 (EDT)

branch: master
commit 3472666f82472bc0de8dcfefed0ec442ea715a76
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>

    Turn on GC_CHECK_MARKED_OBJECTS by default under ENABLE_CHECKING
    
    * src/alloc.c (GC_CHECK_MARKED_OBJECTS): Define to 1 by default of
    ENABLE_CHECKING is defined.
    (mark_object): Test for GC_CHECK_MARKED_OBJECTS being non-zero,
    instead of being defined.
---
 src/alloc.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/alloc.c b/src/alloc.c
index 88a1a1e..ab6b296 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -75,14 +75,20 @@ along with GNU Emacs.  If not, see 
<http://www.gnu.org/licenses/>.  */
 static bool valgrind_p;
 #endif
 
-/* GC_CHECK_MARKED_OBJECTS means do sanity checks on allocated objects.  */
+/* GC_CHECK_MARKED_OBJECTS means do sanity checks on allocated objects.
+   We turn that on by default when ENABLE_CHECKING is defined;
+   define GC_CHECK_MARKED_OBJECTS to zero to disable.  */
+
+#if defined ENABLE_CHECKING && !defined GC_CHECK_MARKED_OBJECTS
+# define GC_CHECK_MARKED_OBJECTS 1
+#endif
 
 /* GC_MALLOC_CHECK defined means perform validity checks of malloc'd
    memory.  Can do this only if using gmalloc.c and if not checking
    marked objects.  */
 
 #if (defined SYSTEM_MALLOC || defined DOUG_LEA_MALLOC \
-     || defined HYBRID_MALLOC || defined GC_CHECK_MARKED_OBJECTS)
+     || defined HYBRID_MALLOC || GC_CHECK_MARKED_OBJECTS)
 #undef GC_MALLOC_CHECK
 #endif
 
@@ -6343,7 +6349,7 @@ mark_object (Lisp_Object arg)
 {
   register Lisp_Object obj;
   void *po;
-#ifdef GC_CHECK_MARKED_OBJECTS
+#if GC_CHECK_MARKED_OBJECTS
   struct mem_node *m;
 #endif
   ptrdiff_t cdr_count = 0;
@@ -6362,7 +6368,7 @@ mark_object (Lisp_Object arg)
   /* Perform some sanity checks on the objects marked here.  Abort if
      we encounter an object we know is bogus.  This increases GC time
      by ~80%.  */
-#ifdef GC_CHECK_MARKED_OBJECTS
+#if GC_CHECK_MARKED_OBJECTS
 
   /* Check that the object pointed to by PO is known to be a Lisp
      structure allocated from the heap.  */
@@ -6431,7 +6437,7 @@ mark_object (Lisp_Object arg)
        if (VECTOR_MARKED_P (ptr))
          break;
 
-#ifdef GC_CHECK_MARKED_OBJECTS
+#if GC_CHECK_MARKED_OBJECTS
        m = mem_find (po);
        if (m == MEM_NIL && !SUBRP (obj) && !main_thread_p (po))
          emacs_abort ();
@@ -6448,7 +6454,7 @@ mark_object (Lisp_Object arg)
        switch (pvectype)
          {
          case PVEC_BUFFER:
-#ifdef GC_CHECK_MARKED_OBJECTS
+#if GC_CHECK_MARKED_OBJECTS
            {
              struct buffer *b;
              FOR_EACH_BUFFER (b)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]