Mercurial > hg > xemacs-beta
annotate lisp/post-gc.el @ 5820:b3824b7f5627
Some changes to eliminate warnings with Apple clang version 1.7.
src/ChangeLog addition:
2014-10-18 Aidan Kehoe <kehoea@parhasard.net>
Some changes to eliminate warnings with Apple clang version 1.7.
* cm.c (send_string_to_tty_console):
* doprnt.c (doprnt_2):
* doprnt.c (parse_off_posnum):
* event-stream.c (dribble_out_event):
Cast various calls to Lstream_putc() to void when the result isn't
being used, for the sake of clang.
* lisp.h:
Declare #'replace here too, it's used in event-stream.c.
* lisp.h (ALLOCA):
* lisp.h (MALLOC_OR_ALLOCA):
Cast a couple of zeros in the context of the ternary operator to
void to prevent unused value warnings with clang.
* sysdep.c (child_setup_tty):
* text.h (ASSERT_ASCTEXT_ASCII_LEN):
Use DO_NOTHING in these files to quieten the compiler.
lib-src/ChangeLog addition:
2014-10-18 Aidan Kehoe <kehoea@parhasard.net>
* ootags.c (substitute):
Cast the result of strlen to int before comparing it with a signed
value, for the sake of compiler warnings.
| author | Aidan Kehoe <kehoea@parhasard.net> |
|---|---|
| date | Sat, 18 Oct 2014 21:48:10 +0100 |
| 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) |
