diff options
| author | Paul Eggert | 2015-03-03 09:10:01 -0800 |
|---|---|---|
| committer | Paul Eggert | 2015-03-03 09:11:02 -0800 |
| commit | a6fb5e2de55b936761274f5d0895de178640ec68 (patch) | |
| tree | 856df06702b00c6b567efe7d2ee041e22048dc51 /src/alloc.c | |
| parent | 27c02b02fe598ee3ceee988865b3df6b370d34a5 (diff) | |
| download | emacs-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.c | 61 |
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 | ||
| 3715 | static void | 3715 | static void |
| 3716 | finalizer_insert (struct Lisp_Finalizer *element, | 3716 | finalizer_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, | |||
| 3727 | static void | 3727 | static void |
| 3728 | unchain_finalizer (struct Lisp_Finalizer *finalizer) | 3728 | unchain_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 | ||
| 3738 | static void | 3739 | static 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 | ||
| 3755 | static void | 3755 | static void |
| 3756 | queue_doomed_finalizers (struct Lisp_Finalizer *dest, | 3756 | queue_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 | ||
| 3793 | static void | 3793 | static void |
| 3794 | run_finalizers (struct Lisp_Finalizer* finalizers) | 3794 | run_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 | ||
| 3813 | DEFUN ("make-finalizer", Fmake_finalizer, Smake_finalizer, 1, 1, 0, | 3813 | DEFUN ("make-finalizer", Fmake_finalizer, Smake_finalizer, 1, 1, 0, |
| @@ -3819,11 +3819,8 @@ count as reachable for the purpose of deciding whether to run | |||
| 3819 | FUNCTION. FUNCTION will be run once per finalizer object. */) | 3819 | FUNCTION. 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 | ||