Add support for finalizers
commit9d8d0658147dfe5a90e2fb07ff666f35b1162d6e
authorDaniel Colascione <dancol@dancol.org>
Mon, 2 Mar 2015 10:23:09 +0000 (2 02:23 -0800)
committerDaniel Colascione <dancol@dancol.org>
Mon, 2 Mar 2015 23:39:01 +0000 (2 15:39 -0800)
tree6d593ab42386348b1842688c75f892db45c5b59e
parentb149ecd8aa3aa9c179dd5496f64e1f50750414fa
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
etc/ChangeLog
etc/NEWS
src/ChangeLog
src/alloc.c
src/lisp.h
src/print.c
test/ChangeLog
test/automated/finalizer-tests.el [new file with mode: 0644]