aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
authorPaul Eggert2015-03-03 09:10:01 -0800
committerPaul Eggert2015-03-03 09:11:02 -0800
commita6fb5e2de55b936761274f5d0895de178640ec68 (patch)
tree856df06702b00c6b567efe7d2ee041e22048dc51 /src/alloc.c
parent27c02b02fe598ee3ceee988865b3df6b370d34a5 (diff)
downloademacs-a6fb5e2de55b936761274f5d0895de178640ec68.tar.gz
emacs-a6fb5e2de55b936761274f5d0895de178640ec68.zip
* alloc.c (run_finalizers): Omit unused local.
Also, redo newly-added code as per usual Emacs style.
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c61
1 files changed, 29 insertions, 32 deletions
diff --git a/src/alloc.c b/src/alloc.c
index eec53e7d844..ff93bf57c26 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -3714,7 +3714,7 @@ init_finalizer_list (struct Lisp_Finalizer *head)
3714 3714
3715static void 3715static void
3716finalizer_insert (struct Lisp_Finalizer *element, 3716finalizer_insert (struct Lisp_Finalizer *element,
3717 struct Lisp_Finalizer* finalizer) 3717 struct Lisp_Finalizer *finalizer)
3718{ 3718{
3719 eassert (finalizer->prev == NULL); 3719 eassert (finalizer->prev == NULL);
3720 eassert (finalizer->next == NULL); 3720 eassert (finalizer->next == NULL);
@@ -3727,12 +3727,13 @@ finalizer_insert (struct Lisp_Finalizer *element,
3727static void 3727static void
3728unchain_finalizer (struct Lisp_Finalizer *finalizer) 3728unchain_finalizer (struct Lisp_Finalizer *finalizer)
3729{ 3729{
3730 if (finalizer->prev != NULL) { 3730 if (finalizer->prev != NULL)
3731 eassert (finalizer->next != NULL); 3731 {
3732 finalizer->prev->next = finalizer->next; 3732 eassert (finalizer->next != NULL);
3733 finalizer->next->prev = finalizer->prev; 3733 finalizer->prev->next = finalizer->next;
3734 finalizer->prev = finalizer->next = NULL; 3734 finalizer->next->prev = finalizer->prev;
3735 } 3735 finalizer->prev = finalizer->next = NULL;
3736 }
3736} 3737}
3737 3738
3738static void 3739static void
@@ -3742,21 +3743,20 @@ mark_finalizer_list (struct Lisp_Finalizer *head)
3742 finalizer != head; 3743 finalizer != head;
3743 finalizer = finalizer->next) 3744 finalizer = finalizer->next)
3744 { 3745 {
3745 finalizer->base.gcmarkbit = 1; 3746 finalizer->base.gcmarkbit = true;
3746 mark_object (finalizer->function); 3747 mark_object (finalizer->function);
3747 } 3748 }
3748} 3749}
3749 3750
3750/* Move doomed finalizers in list SRC onto list DEST. A doomed 3751/* Move doomed finalizers to list DEST from list SRC. A doomed
3751 finalizer is one that is not GC-reachable and whose 3752 finalizer is one that is not GC-reachable and whose
3752 finalizer->function is non-nil. (We reset finalizer->function to 3753 finalizer->function is non-nil. */
3753 before attempting to run it.) */
3754 3754
3755static void 3755static void
3756queue_doomed_finalizers (struct Lisp_Finalizer *dest, 3756queue_doomed_finalizers (struct Lisp_Finalizer *dest,
3757 struct Lisp_Finalizer *src) 3757 struct Lisp_Finalizer *src)
3758{ 3758{
3759 struct Lisp_Finalizer* finalizer = src->next; 3759 struct Lisp_Finalizer *finalizer = src->next;
3760 while (finalizer != src) 3760 while (finalizer != src)
3761 { 3761 {
3762 struct Lisp_Finalizer *next = finalizer->next; 3762 struct Lisp_Finalizer *next = finalizer->next;
@@ -3791,23 +3791,23 @@ run_finalizer_function (Lisp_Object function)
3791} 3791}
3792 3792
3793static void 3793static void
3794run_finalizers (struct Lisp_Finalizer* finalizers) 3794run_finalizers (struct Lisp_Finalizer *finalizers)
3795{ 3795{
3796 struct Lisp_Finalizer* finalizer; 3796 struct Lisp_Finalizer *finalizer;
3797 Lisp_Object function; 3797 Lisp_Object function;
3798 struct gcpro gcpro1;
3799 3798
3800 while (finalizers->next != finalizers) { 3799 while (finalizers->next != finalizers)
3801 finalizer = finalizers->next; 3800 {
3802 eassert (finalizer->base.type == Lisp_Misc_Finalizer); 3801 finalizer = finalizers->next;
3803 unchain_finalizer (finalizer); 3802 eassert (finalizer->base.type == Lisp_Misc_Finalizer);
3804 function = finalizer->function; 3803 unchain_finalizer (finalizer);
3805 if (!NILP (function)) 3804 function = finalizer->function;
3806 { 3805 if (!NILP (function))
3807 finalizer->function = Qnil; 3806 {
3808 run_finalizer_function (function); 3807 finalizer->function = Qnil;
3809 } 3808 run_finalizer_function (function);
3810 } 3809 }
3810 }
3811} 3811}
3812 3812
3813DEFUN ("make-finalizer", Fmake_finalizer, Smake_finalizer, 1, 1, 0, 3813DEFUN ("make-finalizer", Fmake_finalizer, Smake_finalizer, 1, 1, 0,
@@ -3819,11 +3819,8 @@ count as reachable for the purpose of deciding whether to run
3819FUNCTION. FUNCTION will be run once per finalizer object. */) 3819FUNCTION. FUNCTION will be run once per finalizer object. */)
3820 (Lisp_Object function) 3820 (Lisp_Object function)
3821{ 3821{
3822 Lisp_Object val; 3822 Lisp_Object val = allocate_misc (Lisp_Misc_Finalizer);
3823 struct Lisp_Finalizer *finalizer; 3823 struct Lisp_Finalizer *finalizer = XFINALIZER (val);
3824
3825 val = allocate_misc (Lisp_Misc_Finalizer);
3826 finalizer = XFINALIZER (val);
3827 finalizer->function = function; 3824 finalizer->function = function;
3828 finalizer->prev = finalizer->next = NULL; 3825 finalizer->prev = finalizer->next = NULL;
3829 finalizer_insert (&finalizers, finalizer); 3826 finalizer_insert (&finalizers, finalizer);
@@ -6514,7 +6511,7 @@ mark_object (Lisp_Object arg)
6514 break; 6511 break;
6515 6512
6516 case Lisp_Misc_Finalizer: 6513 case Lisp_Misc_Finalizer:
6517 XMISCANY (obj)->gcmarkbit = 1; 6514 XMISCANY (obj)->gcmarkbit = true;
6518 mark_object (XFINALIZER (obj)->function); 6515 mark_object (XFINALIZER (obj)->function);
6519 break; 6516 break;
6520 6517