[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/alloc.c [lexbind]
From: |
Miles Bader |
Subject: |
[Emacs-diffs] Changes to emacs/src/alloc.c [lexbind] |
Date: |
Tue, 06 Jul 2004 06:59:04 -0400 |
Index: emacs/src/alloc.c
diff -c emacs/src/alloc.c:1.272.2.10 emacs/src/alloc.c:1.272.2.11
*** emacs/src/alloc.c:1.272.2.10 Tue Jul 6 10:20:19 2004
--- emacs/src/alloc.c Tue Jul 6 10:23:39 2004
***************
*** 590,595 ****
--- 590,596 ----
p->dogc = 0;
xfree (p->pointer);
p->pointer = 0;
+ free_misc (arg);
return Qnil;
}
***************
*** 2922,2938 ****
--- 2923,2954 ----
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. */
***************
*** 2979,2990 ****
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++;
}
--- 2995,3001 ----
Lisp_Object marker;
{
unchain_marker (XMARKER (marker));
! free_misc (marker);
}