]> git.eshelyaron.com Git - emacs.git/commitdiff
(allocate_misc): Update total_free_markers.
authorKim F. Storm <storm@cua.dk>
Thu, 24 Jun 2004 22:02:23 +0000 (22:02 +0000)
committerKim F. Storm <storm@cua.dk>
Thu, 24 Jun 2004 22:02:23 +0000 (22:02 +0000)
(free_misc): New function.
(safe_alloca_unwind, free_marker): Use it.

src/ChangeLog
src/alloc.c

index ada85adaa1ba619d9dfc2dd0f32301d465cc33f0..67eecfe6f550839a47bb44502dd87edd2f0ebd42 100644 (file)
@@ -1,3 +1,13 @@
+2004-06-25  Kim F. Storm  <storm@cua.dk>
+
+       * alloc.c (allocate_misc): Update total_free_markers.
+       (free_misc): New function.
+       (safe_alloca_unwind, free_marker): Use it.
+
+       * lisp.h (free_misc): Add prototype.
+
+       * fns.c (Fmapconcat, Fmapcar): Remove superfluous GCPROs.
+
 2004-06-24  Richard M. Stallman  <rms@gnu.org>
 
        * emacs.c (Vsignal_USR1_hook, Vsignal_USR2_hook): Definitions deleted.
index 06f7eb6174ed089384b8159e3c2d3ebaa73d8b8c..7ec882f3dd30422f68ee81d881a8d4fcf46c8bfa 100644 (file)
@@ -590,6 +590,7 @@ safe_alloca_unwind (arg)
   p->dogc = 0;
   xfree (p->pointer);
   p->pointer = 0;
+  free_misc (arg);
   return Qnil;
 }
 
@@ -2921,17 +2922,32 @@ allocate_misc ()
          marker_block = new;
          marker_block_index = 0;
          n_marker_blocks++;
+         total_free_markers += MARKER_BLOCK_SIZE;
        }
       XSETMISC (val, &marker_block->markers[marker_block_index]);
       marker_block_index++;
     }
 
+  --total_free_markers;
   consing_since_gc += sizeof (union Lisp_Misc);
   misc_objects_consed++;
   XMARKER (val)->gcmarkbit = 0;
   return val;
 }
 
+/* Free a Lisp_Misc object */
+
+void
+free_misc (misc)
+     Lisp_Object misc;
+{
+  XMISC (misc)->u_marker.type = Lisp_Misc_Free;
+  XMISC (misc)->u_free.chain = marker_free_list;
+  marker_free_list = XMISC (misc);
+
+  total_free_markers++;
+}
+
 /* Return a Lisp_Misc_Save_Value object containing POINTER and
    INTEGER.  This is used to package C values to call record_unwind_protect.
    The unwind function can get the C values back using XSAVE_VALUE.  */
@@ -2978,12 +2994,7 @@ free_marker (marker)
      Lisp_Object marker;
 {
   unchain_marker (XMARKER (marker));
-
-  XMISC (marker)->u_marker.type = Lisp_Misc_Free;
-  XMISC (marker)->u_free.chain = marker_free_list;
-  marker_free_list = XMISC (marker);
-
-  total_free_markers++;
+  free_misc (marker);
 }
 
 \f