Re: [CEDET-devel] Disappearing buffers

On 03/18/2010 10:14 AM, Damien Deville wrote:
> Hi cedet-devel,
>
> First a little fix
>
> In latest cedet cvs version semantic-idle.el should (require 'eldoc)
> otherwise eldoc-message function is not defined.
Thanks, I'll put one in.
> Now a recurrent problem i am facing:
>
> I have some C code which define one static function foo then uses it in
> another function, when placing cursor at the start of foo() and waiting
> for idle-summary timer to expire, my buffer get closed and I have the
> following error in *Messages* buffer
What feature is using the below in the idle timer? I cannot find a call
to semantic-symref-result-get-tags in anything that is called from the
idle timer except for the use of gnu global as a database backend.
Even in that case, the purpose is to close buffers that weren't already
open. The earlier block of code in that function attempts to do that
with get-file-buffer. If the database return is retrieving a file name
for which get-file-buffer fails, but find-file-noselect succeeds, well
that's kind of interesting. What do you think that might be? You can
look in the temporary buffer *CEDET Global* to see what those names
might look like.
Eric
>
> Idle Service Error semantic-idle-summary-idle-function: "#<buffer
> *Messages*> - Wrong type argument: syntax-table-p, nil"
>
>
> Here is the patch i use which prevent the buffer from being closed but
> leads to lot of buffer being opened.
>
> Index: semantic/symref/semantic-symref.el
> ===================================================================
> RCS file: /cvsroot/cedet/cedet/semantic/symref/semantic-symref.el,v
> retrieving revision 1.15
> diff -u -r1.15 semantic-symref.el
> --- semantic/symref/semantic-symref.el 28 Mar 2009 12:42:14 -0000 1.15
> +++ semantic/symref/semantic-symref.el 7 Sep 2009 06:38:27 -0000
> @@ -396,8 +396,10 @@
> tag))
> lines)))
> ;; Kill off dead buffers, unless we were requested to leave them
> open.
> - (when (not open-buffers)
> - (mapc 'kill-buffer buffs-to-kill))
> + ;; DAMIEND
> + ;; (when (not open-buffers)
> + ;; (mapc 'kill-buffer buffs-to-kill))
> + ;; DAMIEND
> ;; Strip out duplicates.
> (dolist (T ans)
> (if (and T (not (semantic-equivalent-tag-p (car out) T)))
>
> I tried reproducing the issue on a simple c files but did not succeed.
> What could I try to help debugging this issue.
>
> Damien