diff options
| author | Daniel Colascione | 2015-03-02 02:23:09 -0800 |
|---|---|---|
| committer | Daniel Colascione | 2015-03-02 15:39:01 -0800 |
| commit | 9d8d0658147dfe5a90e2fb07ff666f35b1162d6e (patch) | |
| tree | 6d593ab42386348b1842688c75f892db45c5b59e /src/print.c | |
| parent | b149ecd8aa3aa9c179dd5496f64e1f50750414fa (diff) | |
| download | emacs-9d8d0658147dfe5a90e2fb07ff666f35b1162d6e.tar.gz emacs-9d8d0658147dfe5a90e2fb07ff666f35b1162d6e.zip | |
Add support for finalizers
+2015-03-02 Daniel Colascione <dancol@dancol.org>
+
+ * NEWS: Mention finalizers.
+
2015-02-09 Gareth Rees <gdr@garethrees.org> (tiny change)
* NEWS.24: Fix typo (bug#19820)
diff --git a/src/ChangeLog b/src/ChangeLog
index 4aa64c1..2f04d0b 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,21 @@
+2015-03-02 Daniel Colascione <dancol@dancol.org>
+
+ * print.c (print_object): Print finalizers.
+
+ * alloc.c:
+ (finalizers, doomed_finalizers): New variables.
+ (init_finalizer_list, finalizer_insert, unchain_finalizer)
+ (mark_finalizer_list, queue_doomed_finalizers)
+ (run_finalizer_handler, run_finalizer_function, run_finalizers):
+ New functions.
+ (garbage_collect_1, mark_object, sweep_misc)
+ (init_alloc_once, syms_of_alloc): Support finalizers.
+ (gc-precise-p): New Lisp variable.
+
+ * lisp.h (Lisp_Misc_Type): New value Lisp_Misc_Finalizer.
+ (FINALIZERP, XFINALIZER): New functions.
+ (Lisp_Finalizer): New structure.
+
2015-02-28 Paul Eggert <eggert@cs.ucla.edu>
* character.c (alphabeticp, decimalnump): Avoid undefined behavior
diff --git a/test/ChangeLog b/test/ChangeLog
index cf1b2c1..684e98f 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,9 @@
+2015-03-02 Daniel Colascione <dancol@dancol.org>
+
+ * automated/finalizer-tests.el (finalizer-basic)
+ (finalizer-circular-reference, finalizer-cross-reference)
+ (finalizer-error): New tests.
+
2015-03-01 Michael Albinus <michael.albinus@gmx.de>
* automated/vc-tests.el (vc-test--create-repo): Add check for
Diffstat (limited to 'src/print.c')
| -rw-r--r-- | src/print.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/print.c b/src/print.c index 1a0aebbeba7..d391fd5f7a3 100644 --- a/src/print.c +++ b/src/print.c | |||
| @@ -2043,7 +2043,11 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, bool escapeflag) | |||
| 2043 | printcharfun); | 2043 | printcharfun); |
| 2044 | } | 2044 | } |
| 2045 | PRINTCHAR ('>'); | 2045 | PRINTCHAR ('>'); |
| 2046 | break; | 2046 | break; |
| 2047 | |||
| 2048 | case Lisp_Misc_Finalizer: | ||
| 2049 | strout ("#<finalizer>", -1, -1, printcharfun); | ||
| 2050 | break; | ||
| 2047 | 2051 | ||
| 2048 | /* Remaining cases shouldn't happen in normal usage, but let's | 2052 | /* Remaining cases shouldn't happen in normal usage, but let's |
| 2049 | print them anyway for the benefit of the debugger. */ | 2053 | print them anyway for the benefit of the debugger. */ |