[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/alloc.c
From: |
Stefan Monnier |
Subject: |
[Emacs-diffs] Changes to emacs/src/alloc.c |
Date: |
Thu, 26 Jun 2003 19:16:05 -0400 |
Index: emacs/src/alloc.c
diff -c emacs/src/alloc.c:1.304 emacs/src/alloc.c:1.305
*** emacs/src/alloc.c:1.304 Wed Jun 25 19:27:32 2003
--- emacs/src/alloc.c Thu Jun 26 19:16:05 2003
***************
*** 2670,2676 ****
p->buffer = 0;
p->bytepos = 0;
p->charpos = 0;
! p->chain = Qnil;
p->insertion_type = 0;
return val;
}
--- 2670,2676 ----
p->buffer = 0;
p->bytepos = 0;
p->charpos = 0;
! p->next = NULL;
p->insertion_type = 0;
return val;
}
***************
*** 2681,2687 ****
free_marker (marker)
Lisp_Object marker;
{
! unchain_marker (marker);
XMISC (marker)->u_marker.type = Lisp_Misc_Free;
XMISC (marker)->u_free.chain = marker_free_list;
--- 2681,2687 ----
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;
***************
*** 4930,4962 ****
break;
case Lisp_Misc:
! /* FIXME: Maybe we should just use obj->mark for all? */
! switch (XMISCTYPE (obj))
! {
! case Lisp_Misc_Marker:
! survives_p = XMARKER (obj)->gcmarkbit;
! break;
!
! case Lisp_Misc_Buffer_Local_Value:
! case Lisp_Misc_Some_Buffer_Local_Value:
! survives_p = XBUFFER_LOCAL_VALUE (obj)->gcmarkbit;
! break;
!
! case Lisp_Misc_Intfwd:
! case Lisp_Misc_Boolfwd:
! case Lisp_Misc_Objfwd:
! case Lisp_Misc_Buffer_Objfwd:
! case Lisp_Misc_Kboard_Objfwd:
! survives_p = 1;
! break;
!
! case Lisp_Misc_Overlay:
! survives_p = XOVERLAY (obj)->gcmarkbit;
! break;
!
! default:
! abort ();
! }
break;
case Lisp_String:
--- 4930,4936 ----
break;
case Lisp_Misc:
! survives_p = XMARKER (obj)->gcmarkbit;
break;
case Lisp_String:
***************
*** 5240,5251 ****
{
Lisp_Object tem;
if (mblk->markers[i].u_marker.type == Lisp_Misc_Marker)
! {
! /* tem1 avoids Sun compiler bug */
! struct Lisp_Marker *tem1 = &mblk->markers[i].u_marker;
! XSETMARKER (tem, tem1);
! unchain_marker (tem);
! }
/* Set the type of the freed object to Lisp_Misc_Free.
We could leave the type alone, since nobody checks it,
but this might catch bugs faster. */
--- 5214,5220 ----
{
Lisp_Object tem;
if (mblk->markers[i].u_marker.type == Lisp_Misc_Marker)
! unchain_marker (&mblk->markers[i].u_marker);
/* Set the type of the freed object to Lisp_Misc_Free.
We could leave the type alone, since nobody checks it,
but this might catch bugs faster. */