Hi cedet-devel,
Since an unknown number of versions of cedet i suffer from a strange bug
that i was able to isolate but not reproduce on simple case yesterday.
First i use last emacs trunk and last cedet from cvs, here is an extract
of how i enable the modules i want to use in cedet.
; minimal + custom (only activate what we need and use)
(semantic-load-enable-minimum-features)
(global-semantic-idle-scheduler-mode 1)
(global-semantic-idle-summary-mode 1)
(global-semantic-idle-tag-highlight-mode 1)
(global-senator-minor-mode 1)
(global-semantic-decoration-mode 1)
The bug is the following:
Sometimes, When i open some .c or .h file semantic throws the following
error, it also happens when jumping to the definition of a symbol using
gtags.el
"semantic-decoration-on-includes-highlight: Wrong type argument: arrayp,
nil"
If i enable debug-on-error here is what i have when trying to switch
from a .c file to a .h file using sourcepair (partially anonymized):
Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
semantic-decoration-on-includes-highlight-default(("foo.h" include
nil (dependency-file "/somepath/foo.h") nil))
semantic-decoration-on-includes-highlight(("foo.h" include nil
(dependency-file "/somepath/foo.h") nil))
semantic-decorate-add-decorations((("_XX_XXX_H" variable
(:constant-flag t) nil nil) ("foo.h" include nil (dependency-file
"/somepath/foo.h") nil) ("func1" function (:prototype-flag t :pointer 1
:arguments ... :type "char") nil nil)))
semantic-decoration-mode-setup()
semantic-decoration-mode()
run-hooks(semantic-init-hook)
semantic-new-buffer-fcn()
run-hooks(mode-local-init-hook)
#[nil "\300 \210\301\302!\207" [activate-mode-local-bindings
run-hooks mode-local-init-hook] 2]()
mode-local-map-file-buffers(#[nil "\300 \210\301\302!\207"
[activate-mode-local-bindings run-hooks mode-local-init-hook] 2]
#[nil " =?\207" [mode-local--init-mode major-mode] 2] (#<buffer foo2.h>))
mode-local-post-major-mode-change()
run-hooks(find-file-hook)
after-find-file(nil t)
find-file-noselect-1(#<buffer foo2.h> "/somepath/foo2.h" nil nil
"/somepath/foo2.h" (10976667 94))
find-file-noselect("/somepath/foo2.h" nil nil nil)
find-file("/somepath/foo2.h")
byte-code("...." [temp search-path possible-filenames
matching-filename path-to-check sourcepair-analyze-filename buffer-name
0 message "%s is not a recognized source or header file (consider
updating sourcepair-source-extensions or sourcepair-header-extensions)"
nil 3 -2 "/*" sourcepair-find-one-of t throw found-matching-file
find-file "No matching file for " " (consider updating
sourcepair-source-path, sourcepair-header-path)"] 5)
sourcepair-load()
call-interactively(sourcepair-load nil nil)
Here is another trace if i just ido-open-file:
Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
semantic-decoration-on-includes-highlight-default(("foo.h" include
nil (dependency-file "/somepath/foo.h") nil))
semantic-decoration-on-includes-highlight(("foo.h" include nil
(dependency-file "/somepath/foo.h") nil))
semantic-decorate-add-decorations((("_XX_XXX_H" variable
(:constant-flag t) nil nil) ("foo.h" include nil (dependency-file
"/somepath/foo.h") nil) ("func1" function (:prototype-flag t :pointer 1
:arguments ... :type "char") nil nil)))
semantic-decoration-mode-setup()
semantic-decoration-mode()
run-hooks(semantic-init-hook)
semantic-new-buffer-fcn()
run-hooks(mode-local-init-hook)
#[nil "\300 \210\301\302!\207" [activate-mode-local-bindings
run-hooks mode-local-init-hook] 2]()
mode-local-map-file-buffers(#[nil "\300 \210\301\302!\207"
[activate-mode-local-bindings run-hooks mode-local-init-hook] 2]
#[nil " =?\207" [mode-local--init-mode major-mode] 2] (#<buffer foo2.h>))
mode-local-post-major-mode-change()
run-hooks(find-file-hook)
after-find-file(nil t)
find-file-noselect-1(#<buffer foo2.h> "/somepath/foo2.h" nil nil
"/somepath/foo2.h" (10976667 94))
find-file-noselect("/somepath/foo2.h" nil nil)
ido-file-internal(raise-frame)
ido-find-file()
call-interactively(ido-find-file nil nil)
The issue vanish if i disable (global-semantic-decoration-mode 1) but i
lose the overline decoration on function declaration which i find fancy
and usefull, so to keep that part and disable the decoration on include
i am forced to remove the ;;###autoload in semantinc-decorate-include.el.
If you need any other information do not hesitate to ask.
Damien
--
Damien Deville
R&D engineer
damien.deville@...
http://www.netasq.com
NETASQ - We secure IT
|