Mercurial > hg > xemacs-beta
annotate lisp/post-gc.el @ 5818:15b0715c204d
Avoid passing patterns to with charset property to FcNameUnparse.
Prevents crash reported by Raymond Toy.
| author | Stephen J. Turnbull <stephen@xemacs.org> |
|---|---|
| date | Sat, 18 Oct 2014 21:20:42 +0900 |
| parents | b9167d522a9a |
| children |
| rev | line source |
|---|---|
| 886 | 1 ;;; post-gc.el --- post-gc actions |
| 2 | |
| 3 ;; Copyright (C) 1985-1986, 1990, 1992-1997 Free Software Foundation, Inc. | |
| 4 ;; Copyright (c) 1993, 1994 Sun Microsystems, Inc. | |
| 5 ;; Copyright (C) 1995 Board of Trustees, University of Illinois | |
| 6 | |
| 7 ;; Author: Mike Sperber <mike@xemacs.org> | |
| 8 ;; Maintainer: XEmacs Development Team | |
| 9 ;; Keywords: internal, dumped | |
| 10 | |
| 11 ;; This file is part of XEmacs. | |
| 12 | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
13 ;; XEmacs is free software: you can redistribute it and/or modify it |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
14 ;; under the terms of the GNU General Public License as published by the |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
15 ;; Free Software Foundation, either version 3 of the License, or (at your |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
16 ;; option) any later version. |
| 886 | 17 |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
18 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
19 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
20 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
21 ;; for more details. |
| 886 | 22 |
| 23 ;; You should have received a copy of the GNU General Public License | |
|
5402
308d34e9f07d
Changed bulk of GPLv2 or later files identified by script
Mats Lidell <matsl@xemacs.org>
parents:
1591
diff
changeset
|
24 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>. |
| 886 | 25 |
| 26 ;;; Synched up with: Not in FSF. | |
| 27 | |
| 28 ;;; Commentary: | |
| 29 | |
| 30 ;; This file is dumped with XEmacs. | |
| 31 | |
| 32 ;; This file defines actions to happen after each GC to perform | |
| 33 ;; additional cleanup, call finalizers, etc. | |
| 34 | |
| 35 (defun run-finalizers (alist) | |
| 36 "Run the finalizers for all objects that have just become unreachable." | |
| 37 (let ((info (assq 'finalize-list alist))) | |
| 38 (if info | |
| 39 (let ((finalize-list (cdr info))) | |
| 40 (while finalize-list | |
| 41 (funcall (cdr (car finalize-list)) (car (car finalize-list))) | |
| 42 (setq finalize-list (cdr finalize-list))))))) | |
| 43 | |
| 44 (add-hook 'post-gc-hook 'run-finalizers) | |
| 45 | |
| 1591 | 46 (defvar simple-finalizer-ephemerons '() |
| 47 "List of ephemerons for objects that have a finalizer attached..") | |
| 886 | 48 |
| 1591 | 49 (defun add-finalizer (object func) |
| 50 "Add FUNC as a finalizer for object OBJECT." | |
| 51 (setq simple-finalizer-ephemerons | |
| 52 (cons (make-ephemeron object object func) | |
| 53 simple-finalizer-ephemerons))) | |
| 54 | |
| 55 (defun cleanup-simple-finalizers (alist) | |
| 56 "Clean up `simple-finalizer-ephemerons'." | |
|
5284
d27c1ee1943b
Make the order of preloaded-file-list more sane.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1591
diff
changeset
|
57 (and simple-finalizer-ephemerons |
|
d27c1ee1943b
Make the order of preloaded-file-list more sane.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1591
diff
changeset
|
58 (setq simple-finalizer-ephemerons |
|
d27c1ee1943b
Make the order of preloaded-file-list more sane.
Aidan Kehoe <kehoea@parhasard.net>
parents:
1591
diff
changeset
|
59 (delete-if-not #'ephemeron-ref simple-finalizer-ephemerons)))) |
| 1591 | 60 |
| 61 (add-hook 'post-gc-hook 'cleanup-simple-finalizers) |
