emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Crash during access_keymap


From: YAMAMOTO Mitsuharu
Subject: Re: Crash during access_keymap
Date: Sun, 13 Nov 2005 13:15:01 +0900
User-agent: Wanderlust/2.14.0 (Africa) SEMI/1.14.6 (Maruoka) FLIM/1.14.6 (Marutamachi) APEL/10.6 Emacs/22.0.50 (sparc-sun-solaris2.8) MULE/5.0 (SAKAKI)

>>>>> On Sat, 12 Nov 2005 11:35:43 +0000, David Reitter <address@hidden> said:

> Looking at the C-level patches that Aquamacs and Carbon Emacs
> Package have in common:

> - transparency
> - toolbar-button

> Both patches don't do anything unless their respective functionality
> is used, as far as I can tell.

Either of them is not an essential feature, so you can try to test
without them if needed.

> I suspect it's rather due to the higher memory management
> requirements - the distributions load more packages.

I found both of the distributions have some entries for additional
preloading in site-load.el, but some of them are not valid.  For
example, international/encoded-kb.el has the following code:

(defun encoded-kbd-self-insert-ccl (ignore)
  (let ((str (char-to-string (encoded-kbd-last-key)))
        (ccl (car (aref (coding-system-spec (keyboard-coding-system)) 4)))
        (vec [nil nil nil nil nil nil nil nil nil])
        result)
    (while (= (length (setq result (ccl-execute-on-string ccl vec str t))) 0)
      (dotimes (i 9) (aset vec i nil))
      (setq str (format "%s%c" str (read-char-exclusive))))
    (vector (aref result 0))))

The vector [nil ...] is allocated in the pure storage if this file is
preloaded, but its contents are altered in the function body and thus
the read-only assumption of the pure storage is violated.  So this
file should not be preloaded as it is.

Inappropriate preloading also affects the correctness of GC.  Since
the pure storage is assumed to be read-only, GC does not mark or
follow the objects in this storage.  So, if there's an object that is
only pointed to by pure storage objects, which may happen if the
assumption for the pure storage is violated, the object is reachable
but never get collected.

                                     YAMAMOTO Mitsuharu
                                address@hidden




reply via email to

[Prev in Thread] Current Thread [Next in Thread]