[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Crash on invalid cons_free_list
From: |
Kevin Rodgers |
Subject: |
Re: Crash on invalid cons_free_list |
Date: |
Tue, 13 Sep 2005 12:03:32 -0600 |
User-agent: |
Mozilla Thunderbird 0.9 (X11/20041105) |
Kim F. Storm wrote:
> Chong Yidong <address@hidden> writes:
>>I installed VM to and played around with it trying to make the
>>string_free_list/compact_small_strings crash happen. I got a crash on
>>an invalid cons_free_list; dunno if that's related.
>
> It seems that most of the crashes triggered by VM are somehow related
> to mapcar -- and in this case a mapcar called inside mapatoms.
>
> Can you deduce what functions are run here, and see if they
> do something special, e.g. intern new symbols or something
> else which manipulates symbols, conses, or strings...
Here is the code inside vm-update-summary-and-mode-line that calls
mapatoms:
(save-excursion
(mapatoms (function
(lambda (b)
(setq b (get-buffer (symbol-name b)))
(if b
(progn
(set-buffer b)
(intern (buffer-name)
vm-buffers-needing-undo-boundaries)
(vm-check-for-killed-summary)
(and vm-use-toolbar
(vm-toolbar-support-possible-p)
(vm-toolbar-update-toolbar))
(vm-do-needed-renumbering)
(if vm-summary-buffer
(vm-do-needed-summary-rebuild))
(vm-do-needed-mode-line-update)))))
vm-buffers-needing-display-update)
(fillarray vm-buffers-needing-display-update 0))
The crash occurs inside vm-do-needed-mode-line-update, which calls
vm-copy-local-variables, which in turn calls vm-mapc:
(defun vm-copy-local-variables (buffer &rest variables)
(let ((values (mapcar 'symbol-value variables)))
(save-excursion
(set-buffer buffer)
(vm-mapc 'set variables values))))
(defun vm-mapc (function &rest lists)
(let (arglist)
(while (car lists)
(setq arglist (mapcar 'car lists))
(apply function arglist)
(setq lists (mapcar 'cdr lists)))))
--
Kevin