ecb-home / ecb

ECB Main Repository
Other
54 stars 11 forks source link

(ECB 2.4) Attempt to modify read-only object" "Variables" or "Types" when ecb-process-non-semantic-files is t #18

Closed metaturso closed 8 years ago

metaturso commented 8 years ago

When ecb-process-non-semantic-files has a non-nil value it's impossible to kill some buffers, unless ECB is deactivated. This error also occurs when debug-on-error is non-nil and a buffer is visited. A error message like the following is output:

Error running timer `ecb-basic-buffer-sync': (error "Attempt to modify read-only object" "Variables")
progn: Attempt to modify read-only object: "Variables"

or

Error running timer `ecb-basic-buffer-sync': (error "Attempt to modify read-only object" "Types")
progn: Attempt to modify read-only object: "Types"

This is the Emacs environment I'm using:

GNU Emacs 25.0.50.1 (x86_64-apple-darwin14.1.0, NS appkit-1344.72 Version 10.10.2 (Build 14C109)) of 2015-06-24 (Homebrew HEAD)

ECB version 2.4 (4cc1131dd on this repo)

CEDET Version:  2.0
  cedet:        2.0
  eieio:        1.4
  semantic:     2.2
  srecode:      1.1
  ede:          1.2

NOTE This issue affects ECB 2.40. I haven't yet been able to reproduce this with the development version ECB.

And here's the backtrace collected as soon as the error happened:

Debugger entered--Lisp error: (error "Attempt to modify read-only object" "Types")
  set-text-properties(0 5 (face speedbar-tag-face) "Types")
  (progn (set-text-properties 0 (length (car tag)) (list (quote face) ecb-method-non-semantic-face) (car tag)) (car tag))
  (tree-node-new (progn (set-text-properties 0 (length (car tag)) (list (quote face) ecb-method-non-semantic-face) (car tag)) (car tag)) 1 nil nil node)
  (setq new-node (tree-node-new (progn (set-text-properties 0 (length (car tag)) (list (quote face) ecb-method-non-semantic-face) (car tag)) (car tag)) 1 nil nil node))
  (ecb-create-non-semantic-tree (setq new-node (tree-node-new (progn (set-text-properties 0 (length (car tag)) (list (quote face) ecb-method-non-semantic-face) (car tag)) (car tag)) 1 nil nil node)) (cdr tag))
  (cond ((null tag) nil) ((speedbar-generic-list-tag-p tag) (setq new-tag (ecb--semantic-tag (car tag) (intern (car tag)))) (ecb--semantic--tag-set-overlay new-tag (make-vector 2 (cdr tag))) (ecb--semantic--tag-put-property new-tag (quote ecb-speedbar-tag) t) (ecb-apply-user-filter-to-tags (list new-tag)) (if (not (ecb-tag-forbidden-display-p new-tag)) (progn (tree-node-new (progn (set-text-properties 0 (length ...) (list ... ecb-method-non-semantic-face) (car tag)) (car tag)) 0 new-tag t node)))) ((speedbar-generic-list-positioned-group-p tag) (setq new-tag (ecb--semantic-tag (car tag) (intern (car tag)))) (ecb--semantic--tag-set-overlay new-tag (make-vector 2 (car (cdr tag)))) (ecb--semantic--tag-put-property new-tag (quote ecb-speedbar-tag) t) (ecb-apply-user-filter-to-tags (list new-tag)) (if (not (ecb-tag-forbidden-display-p new-tag)) (progn (ecb-create-non-semantic-tree (setq new-node (tree-node-new (progn ... ...) 0 new-tag nil node)) (cdr (cdr tag))) (progn nil (or (progn nil (and ... ... ... t)) (signal (quote wrong-type-argument) (list ... new-node))) (let* ((v new-node)) (aset v 9 (member major-mode ecb-non-semantic-methods-initial-expand))))))) ((speedbar-generic-list-group-p tag) (ecb-create-non-semantic-tree (setq new-node (tree-node-new (progn (set-text-properties 0 (length ...) (list ... ecb-method-non-semantic-face) (car tag)) (car tag)) 1 nil nil node)) (cdr tag)) (progn nil (or (progn nil (and (vectorp new-node) (>= (length new-node) 13) (memq (aref new-node 0) cl-struct-tree-node-tags) t)) (signal (quote wrong-type-argument) (list (quote tree-node) new-node))) (let* ((v new-node)) (aset v 9 (member major-mode ecb-non-semantic-methods-initial-expand))))) (t (ecb-error "ecb-create-non-semantic-tree: malformed tag-list!")))
  (while --dolist-tail-- (setq tag (car --dolist-tail--)) (cond ((null tag) nil) ((speedbar-generic-list-tag-p tag) (setq new-tag (ecb--semantic-tag (car tag) (intern (car tag)))) (ecb--semantic--tag-set-overlay new-tag (make-vector 2 (cdr tag))) (ecb--semantic--tag-put-property new-tag (quote ecb-speedbar-tag) t) (ecb-apply-user-filter-to-tags (list new-tag)) (if (not (ecb-tag-forbidden-display-p new-tag)) (progn (tree-node-new (progn (set-text-properties 0 ... ... ...) (car tag)) 0 new-tag t node)))) ((speedbar-generic-list-positioned-group-p tag) (setq new-tag (ecb--semantic-tag (car tag) (intern (car tag)))) (ecb--semantic--tag-set-overlay new-tag (make-vector 2 (car (cdr tag)))) (ecb--semantic--tag-put-property new-tag (quote ecb-speedbar-tag) t) (ecb-apply-user-filter-to-tags (list new-tag)) (if (not (ecb-tag-forbidden-display-p new-tag)) (progn (ecb-create-non-semantic-tree (setq new-node (tree-node-new ... 0 new-tag nil node)) (cdr (cdr tag))) (progn nil (or (progn nil ...) (signal ... ...)) (let* (...) (aset v 9 ...)))))) ((speedbar-generic-list-group-p tag) (ecb-create-non-semantic-tree (setq new-node (tree-node-new (progn (set-text-properties 0 ... ... ...) (car tag)) 1 nil nil node)) (cdr tag)) (progn nil (or (progn nil (and (vectorp new-node) (>= ... 13) (memq ... cl-struct-tree-node-tags) t)) (signal (quote wrong-type-argument) (list (quote tree-node) new-node))) (let* ((v new-node)) (aset v 9 (member major-mode ecb-non-semantic-methods-initial-expand))))) (t (ecb-error "ecb-create-non-semantic-tree: malformed tag-list!"))) (setq --dolist-tail-- (cdr --dolist-tail--)))
  (let ((--dolist-tail-- tag-list) tag) (while --dolist-tail-- (setq tag (car --dolist-tail--)) (cond ((null tag) nil) ((speedbar-generic-list-tag-p tag) (setq new-tag (ecb--semantic-tag (car tag) (intern (car tag)))) (ecb--semantic--tag-set-overlay new-tag (make-vector 2 (cdr tag))) (ecb--semantic--tag-put-property new-tag (quote ecb-speedbar-tag) t) (ecb-apply-user-filter-to-tags (list new-tag)) (if (not (ecb-tag-forbidden-display-p new-tag)) (progn (tree-node-new (progn ... ...) 0 new-tag t node)))) ((speedbar-generic-list-positioned-group-p tag) (setq new-tag (ecb--semantic-tag (car tag) (intern (car tag)))) (ecb--semantic--tag-set-overlay new-tag (make-vector 2 (car (cdr tag)))) (ecb--semantic--tag-put-property new-tag (quote ecb-speedbar-tag) t) (ecb-apply-user-filter-to-tags (list new-tag)) (if (not (ecb-tag-forbidden-display-p new-tag)) (progn (ecb-create-non-semantic-tree (setq new-node ...) (cdr ...)) (progn nil (or ... ...) (let* ... ...))))) ((speedbar-generic-list-group-p tag) (ecb-create-non-semantic-tree (setq new-node (tree-node-new (progn ... ...) 1 nil nil node)) (cdr tag)) (progn nil (or (progn nil (and ... ... ... t)) (signal (quote wrong-type-argument) (list ... new-node))) (let* ((v new-node)) (aset v 9 (member major-mode ecb-non-semantic-methods-initial-expand))))) (t (ecb-error "ecb-create-non-semantic-tree: malformed tag-list!"))) (setq --dolist-tail-- (cdr --dolist-tail--))))
  (let ((new-node nil) (new-tag nil)) (let ((--dolist-tail-- tag-list) tag) (while --dolist-tail-- (setq tag (car --dolist-tail--)) (cond ((null tag) nil) ((speedbar-generic-list-tag-p tag) (setq new-tag (ecb--semantic-tag (car tag) (intern ...))) (ecb--semantic--tag-set-overlay new-tag (make-vector 2 (cdr tag))) (ecb--semantic--tag-put-property new-tag (quote ecb-speedbar-tag) t) (ecb-apply-user-filter-to-tags (list new-tag)) (if (not (ecb-tag-forbidden-display-p new-tag)) (progn (tree-node-new ... 0 new-tag t node)))) ((speedbar-generic-list-positioned-group-p tag) (setq new-tag (ecb--semantic-tag (car tag) (intern ...))) (ecb--semantic--tag-set-overlay new-tag (make-vector 2 (car ...))) (ecb--semantic--tag-put-property new-tag (quote ecb-speedbar-tag) t) (ecb-apply-user-filter-to-tags (list new-tag)) (if (not (ecb-tag-forbidden-display-p new-tag)) (progn (ecb-create-non-semantic-tree ... ...) (progn nil ... ...)))) ((speedbar-generic-list-group-p tag) (ecb-create-non-semantic-tree (setq new-node (tree-node-new ... 1 nil nil node)) (cdr tag)) (progn nil (or (progn nil ...) (signal ... ...)) (let* (...) (aset v 9 ...)))) (t (ecb-error "ecb-create-non-semantic-tree: malformed tag-list!"))) (setq --dolist-tail-- (cdr --dolist-tail--)))) node)
  ecb-create-non-semantic-tree([cl-struct-tree-node "root" -1 nil nil nil nil (0 "..." 5) t nil nil nil -268435067] (("Types" ("ecb" . #<marker at 8900 in ecb.el>) ("ecb-general" . #<marker at 8977 in ecb.el>) ("ecb-most-important" . #<marker at 9085 in ecb.el>)) ("Variables" ("ecb-major-mode-selected-source" . #<marker at 7997 in ecb.el>) ("ecb-item-in-tree-buffer-selected" . #<marker at 8087 in ecb.el>) ("ecb-minor-mode" . #<marker at 8535 in ecb.el>) ("ecb-activated-window-configuration" . #<marker at 8665 in ecb.el>) ("ecb-use-recursive-edit" . #<marker at 9207 in ecb.el>) ("ecb-auto-activate" . #<marker at 9394 in ecb.el>) ("ecb-activation-selects-ecb-frame-if-already-active" . #<marker at 9617 in ecb.el>) ("ecb-clear-caches-before-activate" . #<marker at 10157 in ecb.el>) ("ecb-stealthy-tasks-delay" . #<marker at 10866 in ecb.el>) ("ecb-minor-mode-text" . #<marker at 12162 in ecb.el>) ("ecb-auto-compatibility-check" . #<marker at 12549 in ecb.el>) ("ecb-version-check" . #<marker at 13366 in ecb.el>) ("ecb-debug-mode" . #<marker at 13636 in ecb.el>) ("ecb-run-ediff-in-ecb-frame" . #<marker at 14209 in ecb.el>) ("ecb-activate-before-layout-draw-hook" . #<marker at 14733 in ecb.el>) ("ecb-before-activate-hook" . #<marker at 15958 in ecb.el>) ("ecb-activate-hook" . #<marker at 16527 in ecb.el>) ("ecb-deactivate-hook" . #<marker at 16872 in ecb.el>) ("ecb-before-deactivate-hook" . #<marker at 17061 in ecb.el>) ("ecb-menu-name" . #<marker at 20614 in ecb.el>) ("ecb-menu-bar" . #<marker at 20643 in ecb.el>) ("ecb-mode-map" . #<marker at 34647 in ecb.el>) ("ecb-key-map" . #<marker at 34715 in ecb.el>) ("ecb-upgrade-check-done" . #<marker at 41947 in ecb.el>) ("ecb-last-window-config-before-deactivation" . #<marker at 42395 in ecb.el>) ("ecb-temporary-changed-emacs-variables-alist" . #<marker at 42577 in ecb.el>) ("ecb-font-lock-keywords" . #<marker at 72870 in ecb.el>)) ("ecb-initialize-all-internals" . #<marker at 8216 in ecb.el>) ("ecb-kill-buffer-hook" . #<marker at 17525 in ecb.el>) ("ecb-window-sync" . #<marker at 18809 in ecb.el>) ("ecb-customize" . #<marker at 19607 in ecb.el>) ("ecb-customize-most-important" . #<marker at 19763 in ecb.el>) ("ecb-menu-item" . #<marker at 20116 in ecb.el>) ("ecb-add-to-minor-modes" . #<marker at 34148 in ecb.el>) ("ecb-activate" . #<marker at 41096 in ecb.el>) ("ecb-activate-internal" . #<marker at 41413 in ecb.el>) ("ecb-clean-up-after-activation-failure" . #<marker at 41984 in ecb.el>) ("ecb-modify-emacs-variable" . #<marker at 42813 in ecb.el>) ("ecb-activate--impl" . #<marker at 43892 in ecb.el>) ("ecb-deactivate" . #<marker at 58634 in ecb.el>) ("ecb-deactivate-internal" . #<marker at 58761 in ecb.el>) ("ecb-minor-mode" . #<marker at 66076 in ecb.el>) ("ecb-compile-file-if-necessary" . #<marker at 66637 in ecb.el>) ("ecb-byte-compile" . #<marker at 67065 in ecb.el>) ("ecb-auto-activate-hook" . #<marker at 67761 in ecb.el>)))
  (if (equal non-semantic-handling (quote parsed)) (ecb-create-non-semantic-tree new-tree updated-cache))
  (if non-semantic-handling (if (equal non-semantic-handling (quote parsed)) (ecb-create-non-semantic-tree new-tree updated-cache)) (ecb-add-tags new-tree (ecb-post-process-taglist updated-cache)))
  (if (or (and no-update-semantic cache) (and (not (ecb--semantic-active-p)) (not non-semantic-handling) (not force-nil-cache))) nil (setq tag-sync-necessary t) (setq new-tree (tree-node-new-root)) (if non-semantic-handling (if (equal non-semantic-handling (quote parsed)) (ecb-create-non-semantic-tree new-tree updated-cache)) (ecb-add-tags new-tree (ecb-post-process-taglist updated-cache))) (if cache (setcdr cache new-tree) (setq cache (cons cache-key new-tree)) (setq ecb-tag-tree-cache (cons cache ecb-tag-tree-cache))))
  (let* ((cache-key (buffer-name)) (cache (assoc cache-key ecb-tag-tree-cache)) (curr-buff (current-buffer)) (tag-sync-necessary nil) (curr-major-mode major-mode) (ezimage-use-images (if (ecb-use-images-for-semantic-tags) nil (ecb--ezimage-use-images))) (semantic-format-use-images-flag (if (ecb-use-images-for-semantic-tags) nil (ecb--semantic-format-use-images-flag))) (my-format-face-alist (if (ecb-use-images-for-semantic-tags) (ecb-remove-assoc (quote abstract) (ecb-remove-assoc (quote static) (ecb--semantic-format-face-alist))) (ecb--semantic-format-face-alist))) (semantic-format-face-alist my-format-face-alist) (semantic-bucketize-tag-class (if ecb-methods-separate-prototypes (function (lambda (tag) (if (ecb--semantic-tag-prototype-p tag) (quote prototype) (ecb--semantic-tag-class tag)))) semantic-bucketize-tag-class)) (semantic-symbol->name-assoc-list-for-type-parts (and (ecb--semantic-active-p) (ecb--semantic-symbol->name-assoc-list-for-type-parts) (or (and (null (cdr ...)) (ecb--semantic-symbol->name-assoc-list-for-type-parts)) (append (ecb--semantic-symbol->name-assoc-list-for-type-parts) (list (cons ... ...)))))) (semantic-symbol->name-assoc-list (and (ecb--semantic-active-p) (ecb--semantic-symbol->name-assoc-list) (or (and (null (cdr ...)) (ecb--semantic-symbol->name-assoc-list)) (append (ecb--semantic-symbol->name-assoc-list) (list (cons ... ...)))))) (curr-semantic-symbol->name-assoc-list semantic-symbol->name-assoc-list) new-tree non-semantic-handling) (if ecb-debug-mode (let ((--dolist-tail-- updated-cache) a-tag) (while --dolist-tail-- (setq a-tag (car --dolist-tail--)) (ecb-semantic-assert-valid-tag a-tag) (setq --dolist-tail-- (cdr --dolist-tail--))))) (if (and ecb-process-non-semantic-files (null updated-cache) (not (ecb--semantic-active-p)) (ecb-buffer-file-name (current-buffer)) (or non-semantic-rebuild (null cache))) (progn (setq updated-cache (condition-case nil (progn (ecb-get-tags-for-non-semantic-files)) (error nil))) (setq non-semantic-handling (if updated-cache (quote parsed) (quote parsed-failed))))) (if (or (and no-update-semantic cache) (and (not (ecb--semantic-active-p)) (not non-semantic-handling) (not force-nil-cache))) nil (setq tag-sync-necessary t) (setq new-tree (tree-node-new-root)) (if non-semantic-handling (if (equal non-semantic-handling (quote parsed)) (ecb-create-non-semantic-tree new-tree updated-cache)) (ecb-add-tags new-tree (ecb-post-process-taglist updated-cache))) (if cache (setcdr cache new-tree) (setq cache (cons cache-key new-tree)) (setq ecb-tag-tree-cache (cons cache ecb-tag-tree-cache)))) (save-current-buffer (set-buffer ecb-methods-buffer-name) (tree-buffer-set-data-store (list (cons (quote source-buffer) curr-buff) (cons (quote source-major-mode) curr-major-mode) (cons (quote semantic-symbol->name-assoc-list) curr-semantic-symbol->name-assoc-list))) (if cache nil (setq cache (cons cache-key (tree-node-new-root)))) (tree-buffer-set-root (cdr cache)) (setq ecb-methods-root-node (cdr cache)) (tree-buffer-update)) (ecb-mode-line-format) (if tag-sync-necessary (ecb-tag-sync (quote force))))
  (progn (if (not (ecb--semantic-active-p)) (setq no-update-semantic nil)) (let* ((cache-key (buffer-name)) (cache (assoc cache-key ecb-tag-tree-cache)) (curr-buff (current-buffer)) (tag-sync-necessary nil) (curr-major-mode major-mode) (ezimage-use-images (if (ecb-use-images-for-semantic-tags) nil (ecb--ezimage-use-images))) (semantic-format-use-images-flag (if (ecb-use-images-for-semantic-tags) nil (ecb--semantic-format-use-images-flag))) (my-format-face-alist (if (ecb-use-images-for-semantic-tags) (ecb-remove-assoc (quote abstract) (ecb-remove-assoc (quote static) (ecb--semantic-format-face-alist))) (ecb--semantic-format-face-alist))) (semantic-format-face-alist my-format-face-alist) (semantic-bucketize-tag-class (if ecb-methods-separate-prototypes (function (lambda (tag) (if ... ... ...))) semantic-bucketize-tag-class)) (semantic-symbol->name-assoc-list-for-type-parts (and (ecb--semantic-active-p) (ecb--semantic-symbol->name-assoc-list-for-type-parts) (or (and (null ...) (ecb--semantic-symbol->name-assoc-list-for-type-parts)) (append (ecb--semantic-symbol->name-assoc-list-for-type-parts) (list ...))))) (semantic-symbol->name-assoc-list (and (ecb--semantic-active-p) (ecb--semantic-symbol->name-assoc-list) (or (and (null ...) (ecb--semantic-symbol->name-assoc-list)) (append (ecb--semantic-symbol->name-assoc-list) (list ...))))) (curr-semantic-symbol->name-assoc-list semantic-symbol->name-assoc-list) new-tree non-semantic-handling) (if ecb-debug-mode (let ((--dolist-tail-- updated-cache) a-tag) (while --dolist-tail-- (setq a-tag (car --dolist-tail--)) (ecb-semantic-assert-valid-tag a-tag) (setq --dolist-tail-- (cdr --dolist-tail--))))) (if (and ecb-process-non-semantic-files (null updated-cache) (not (ecb--semantic-active-p)) (ecb-buffer-file-name (current-buffer)) (or non-semantic-rebuild (null cache))) (progn (setq updated-cache (condition-case nil (progn (ecb-get-tags-for-non-semantic-files)) (error nil))) (setq non-semantic-handling (if updated-cache (quote parsed) (quote parsed-failed))))) (if (or (and no-update-semantic cache) (and (not (ecb--semantic-active-p)) (not non-semantic-handling) (not force-nil-cache))) nil (setq tag-sync-necessary t) (setq new-tree (tree-node-new-root)) (if non-semantic-handling (if (equal non-semantic-handling (quote parsed)) (ecb-create-non-semantic-tree new-tree updated-cache)) (ecb-add-tags new-tree (ecb-post-process-taglist updated-cache))) (if cache (setcdr cache new-tree) (setq cache (cons cache-key new-tree)) (setq ecb-tag-tree-cache (cons cache ecb-tag-tree-cache)))) (save-current-buffer (set-buffer ecb-methods-buffer-name) (tree-buffer-set-data-store (list (cons (quote source-buffer) curr-buff) (cons (quote source-major-mode) curr-major-mode) (cons (quote semantic-symbol->name-assoc-list) curr-semantic-symbol->name-assoc-list))) (if cache nil (setq cache (cons cache-key (tree-node-new-root)))) (tree-buffer-set-root (cdr cache)) (setq ecb-methods-root-node (cdr cache)) (tree-buffer-update)) (ecb-mode-line-format) (if tag-sync-necessary (ecb-tag-sync (quote force)))) (setq ecb-method-buffer-needs-rebuild nil))
  (if (and ecb-minor-mode (equal (selected-frame) ecb-frame) (ecb-buffer-is-ecb-buffer-of-current-layout-p ecb-methods-buffer-name) (ecb-buffer-file-name (current-buffer)) (or ecb-method-buffer-rebuild-allowed-for-invisible-buffers (get-buffer-window (current-buffer) ecb-frame)) (or updated-cache (not (ecb--semantic-active-p)) force-nil-cache)) (progn (if (not (ecb--semantic-active-p)) (setq no-update-semantic nil)) (let* ((cache-key (buffer-name)) (cache (assoc cache-key ecb-tag-tree-cache)) (curr-buff (current-buffer)) (tag-sync-necessary nil) (curr-major-mode major-mode) (ezimage-use-images (if (ecb-use-images-for-semantic-tags) nil (ecb--ezimage-use-images))) (semantic-format-use-images-flag (if (ecb-use-images-for-semantic-tags) nil (ecb--semantic-format-use-images-flag))) (my-format-face-alist (if (ecb-use-images-for-semantic-tags) (ecb-remove-assoc (quote abstract) (ecb-remove-assoc ... ...)) (ecb--semantic-format-face-alist))) (semantic-format-face-alist my-format-face-alist) (semantic-bucketize-tag-class (if ecb-methods-separate-prototypes (function (lambda ... ...)) semantic-bucketize-tag-class)) (semantic-symbol->name-assoc-list-for-type-parts (and (ecb--semantic-active-p) (ecb--semantic-symbol->name-assoc-list-for-type-parts) (or (and ... ...) (append ... ...)))) (semantic-symbol->name-assoc-list (and (ecb--semantic-active-p) (ecb--semantic-symbol->name-assoc-list) (or (and ... ...) (append ... ...)))) (curr-semantic-symbol->name-assoc-list semantic-symbol->name-assoc-list) new-tree non-semantic-handling) (if ecb-debug-mode (let ((--dolist-tail-- updated-cache) a-tag) (while --dolist-tail-- (setq a-tag (car --dolist-tail--)) (ecb-semantic-assert-valid-tag a-tag) (setq --dolist-tail-- (cdr --dolist-tail--))))) (if (and ecb-process-non-semantic-files (null updated-cache) (not (ecb--semantic-active-p)) (ecb-buffer-file-name (current-buffer)) (or non-semantic-rebuild (null cache))) (progn (setq updated-cache (condition-case nil (progn ...) (error nil))) (setq non-semantic-handling (if updated-cache (quote parsed) (quote parsed-failed))))) (if (or (and no-update-semantic cache) (and (not (ecb--semantic-active-p)) (not non-semantic-handling) (not force-nil-cache))) nil (setq tag-sync-necessary t) (setq new-tree (tree-node-new-root)) (if non-semantic-handling (if (equal non-semantic-handling (quote parsed)) (ecb-create-non-semantic-tree new-tree updated-cache)) (ecb-add-tags new-tree (ecb-post-process-taglist updated-cache))) (if cache (setcdr cache new-tree) (setq cache (cons cache-key new-tree)) (setq ecb-tag-tree-cache (cons cache ecb-tag-tree-cache)))) (save-current-buffer (set-buffer ecb-methods-buffer-name) (tree-buffer-set-data-store (list (cons (quote source-buffer) curr-buff) (cons (quote source-major-mode) curr-major-mode) (cons (quote semantic-symbol->name-assoc-list) curr-semantic-symbol->name-assoc-list))) (if cache nil (setq cache (cons cache-key (tree-node-new-root)))) (tree-buffer-set-root (cdr cache)) (setq ecb-methods-root-node (cdr cache)) (tree-buffer-update)) (ecb-mode-line-format) (if tag-sync-necessary (ecb-tag-sync (quote force)))) (setq ecb-method-buffer-needs-rebuild nil)))
  ecb-rebuild-methods-buffer-with-tagcache(nil nil nil nil)
  (progn (ecb-rebuild-methods-buffer-with-tagcache current-tagcache (and (ecb--semantic-active-p) (not full-semantic)) (ecb--semantic-active-p) rebuild-non-semantic))
  (if ecb-method-buffer-needs-rebuild (progn (ecb-rebuild-methods-buffer-with-tagcache current-tagcache (and (ecb--semantic-active-p) (not full-semantic)) (ecb--semantic-active-p) rebuild-non-semantic)))
  (let ((current-tagcache (and (ecb--semantic-active-p) (save-excursion (save-restriction (widen) (ecb-fetch-semantic-tags full-semantic)))))) (if ecb-method-buffer-needs-rebuild (progn (ecb-rebuild-methods-buffer-with-tagcache current-tagcache (and (ecb--semantic-active-p) (not full-semantic)) (ecb--semantic-active-p) rebuild-non-semantic))))
  (progn (setq ecb-method-buffer-needs-rebuild t) (setq ecb-method-buffer-rebuild-allowed-for-invisible-buffers invisible-sourcebuffer-allowed) (let ((current-tagcache (and (ecb--semantic-active-p) (save-excursion (save-restriction (widen) (ecb-fetch-semantic-tags full-semantic)))))) (if ecb-method-buffer-needs-rebuild (progn (ecb-rebuild-methods-buffer-with-tagcache current-tagcache (and (ecb--semantic-active-p) (not full-semantic)) (ecb--semantic-active-p) rebuild-non-semantic)))) (if scroll-to-top (progn (let ((save-selected-window--state (internal--before-save-selected-window))) (save-current-buffer (unwind-protect (progn (if ... ... ...)) (internal--after-save-selected-window save-selected-window--state)))))))
  (if (and (equal (selected-frame) ecb-frame) (get-buffer-window ecb-methods-buffer-name)) (progn (setq ecb-method-buffer-needs-rebuild t) (setq ecb-method-buffer-rebuild-allowed-for-invisible-buffers invisible-sourcebuffer-allowed) (let ((current-tagcache (and (ecb--semantic-active-p) (save-excursion (save-restriction ... ...))))) (if ecb-method-buffer-needs-rebuild (progn (ecb-rebuild-methods-buffer-with-tagcache current-tagcache (and (ecb--semantic-active-p) (not full-semantic)) (ecb--semantic-active-p) rebuild-non-semantic)))) (if scroll-to-top (progn (let ((save-selected-window--state (internal--before-save-selected-window))) (save-current-buffer (unwind-protect (progn ...) (internal--after-save-selected-window save-selected-window--state))))))))
  ecb-update-methods-buffer--internal(scroll-to-begin)
  (cond ((and filename (ecb-buffer-or-file-readable-p filename) (or force (not (equal (ecb-source-make filename (buffer-name)) (ecb-path-selected-source))))) (if (null (ecb-matching-source-paths filename)) (let* ((norm-filename (ecb-fix-filename filename)) (remote-path (ecb-remote-path norm-filename)) (source-path (if (car ecb-add-path-for-not-matching-files) (if remote-path ... ...) (ecb-file-name-directory norm-filename)))) (ecb-add-source-path source-path (ecb-fix-filename source-path) (not (cdr ecb-add-path-for-not-matching-files))))) (ecb-path-selected-source-set filename (buffer-name)) (ecb-select-source force) (ecb-update-methods-buffer--internal (quote scroll-to-begin)) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync (quote force))) ((eq major-mode (quote dired-mode)) (ecb-set-selected-directory (or (and (stringp dired-directory) (ecb-file-exists-p dired-directory) dired-directory) (and (listp dired-directory) (car dired-directory))))) (t nil))
  (let* ((filename (ecb-buffer-file-name (current-buffer)))) (cond ((and filename (ecb-buffer-or-file-readable-p filename) (or force (not (equal (ecb-source-make filename ...) (ecb-path-selected-source))))) (if (null (ecb-matching-source-paths filename)) (let* ((norm-filename (ecb-fix-filename filename)) (remote-path (ecb-remote-path norm-filename)) (source-path (if ... ... ...))) (ecb-add-source-path source-path (ecb-fix-filename source-path) (not (cdr ecb-add-path-for-not-matching-files))))) (ecb-path-selected-source-set filename (buffer-name)) (ecb-select-source force) (ecb-update-methods-buffer--internal (quote scroll-to-begin)) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync (quote force))) ((eq major-mode (quote dired-mode)) (ecb-set-selected-directory (or (and (stringp dired-directory) (ecb-file-exists-p dired-directory) dired-directory) (and (listp dired-directory) (car dired-directory))))) (t nil)))
  (progn (let* ((filename (ecb-buffer-file-name (current-buffer)))) (cond ((and filename (ecb-buffer-or-file-readable-p filename) (or force (not (equal ... ...)))) (if (null (ecb-matching-source-paths filename)) (let* ((norm-filename ...) (remote-path ...) (source-path ...)) (ecb-add-source-path source-path (ecb-fix-filename source-path) (not ...)))) (ecb-path-selected-source-set filename (buffer-name)) (ecb-select-source force) (ecb-update-methods-buffer--internal (quote scroll-to-begin)) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync (quote force))) ((eq major-mode (quote dired-mode)) (ecb-set-selected-directory (or (and (stringp dired-directory) (ecb-file-exists-p dired-directory) dired-directory) (and (listp dired-directory) (car dired-directory))))) (t nil))) (run-hooks (quote ecb-basic-buffer-sync-hook)))
  (if (and ecb-minor-mode (not (ecb-windows-all-hidden)) (ecb-point-in-edit-window-number)) (progn (let* ((filename (ecb-buffer-file-name (current-buffer)))) (cond ((and filename (ecb-buffer-or-file-readable-p filename) (or force (not ...))) (if (null (ecb-matching-source-paths filename)) (let* (... ... ...) (ecb-add-source-path source-path ... ...))) (ecb-path-selected-source-set filename (buffer-name)) (ecb-select-source force) (ecb-update-methods-buffer--internal (quote scroll-to-begin)) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync (quote force))) ((eq major-mode (quote dired-mode)) (ecb-set-selected-directory (or (and ... ... dired-directory) (and ... ...)))) (t nil))) (run-hooks (quote ecb-basic-buffer-sync-hook))))
  (when (and ecb-minor-mode (not (ecb-windows-all-hidden)) (ecb-point-in-edit-window-number)) (let* ((filename (ecb-buffer-file-name (current-buffer)))) (cond ((and filename (ecb-buffer-or-file-readable-p filename) (or force (not (equal ... ...)))) (if (null (ecb-matching-source-paths filename)) (let* ((norm-filename ...) (remote-path ...) (source-path ...)) (ecb-add-source-path source-path (ecb-fix-filename source-path) (not ...)))) (ecb-path-selected-source-set filename (buffer-name)) (ecb-select-source force) (ecb-update-methods-buffer--internal (quote scroll-to-begin)) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync (quote force))) ((eq major-mode (quote dired-mode)) (ecb-set-selected-directory (or (and (stringp dired-directory) (ecb-file-exists-p dired-directory) dired-directory) (and (listp dired-directory) (car dired-directory))))) (t nil))) (run-hooks (quote ecb-basic-buffer-sync-hook)))
  (progn (ecb-bodytrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "After conditions: Cur-buf: %s" (current-buffer)) (when (and ecb-minor-mode (not (ecb-windows-all-hidden)) (ecb-point-in-edit-window-number)) (let* ((filename (ecb-buffer-file-name (current-buffer)))) (cond ((and filename (ecb-buffer-or-file-readable-p filename) (or force (not ...))) (if (null (ecb-matching-source-paths filename)) (let* (... ... ...) (ecb-add-source-path source-path ... ...))) (ecb-path-selected-source-set filename (buffer-name)) (ecb-select-source force) (ecb-update-methods-buffer--internal (quote scroll-to-begin)) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync (quote force))) ((eq major-mode (quote dired-mode)) (ecb-set-selected-directory (or (and ... ... dired-directory) (and ... ...)))) (t nil))) (run-hooks (quote ecb-basic-buffer-sync-hook))) (ecb-autotrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "End:   Cur-buf: %s" (current-buffer)) nil)
  (progn (progn (ecb-bodytrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "After conditions: Cur-buf: %s" (current-buffer)) (when (and ecb-minor-mode (not (ecb-windows-all-hidden)) (ecb-point-in-edit-window-number)) (let* ((filename (ecb-buffer-file-name (current-buffer)))) (cond ((and filename (ecb-buffer-or-file-readable-p filename) (or force ...)) (if (null ...) (let* ... ...)) (ecb-path-selected-source-set filename (buffer-name)) (ecb-select-source force) (ecb-update-methods-buffer--internal (quote scroll-to-begin)) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync (quote force))) ((eq major-mode (quote dired-mode)) (ecb-set-selected-directory (or ... ...))) (t nil))) (run-hooks (quote ecb-basic-buffer-sync-hook))) (ecb-autotrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "End:   Cur-buf: %s" (current-buffer)) nil))
  (if (or force (equal (quote always) ecb-basic-buffer-sync) (equal t ecb-basic-buffer-sync) (and ecb-basic-buffer-sync (listp ecb-basic-buffer-sync) (not (member major-mode ecb-basic-buffer-sync)))) (progn (progn (ecb-bodytrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "After conditions: Cur-buf: %s" (current-buffer)) (when (and ecb-minor-mode (not (ecb-windows-all-hidden)) (ecb-point-in-edit-window-number)) (let* ((filename (ecb-buffer-file-name ...))) (cond ((and filename ... ...) (if ... ...) (ecb-path-selected-source-set filename ...) (ecb-select-source force) (ecb-update-methods-buffer--internal ...) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync ...)) ((eq major-mode ...) (ecb-set-selected-directory ...)) (t nil))) (run-hooks (quote ecb-basic-buffer-sync-hook))) (ecb-autotrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "End:   Cur-buf: %s" (current-buffer)) nil)))
  (when (or force (equal (quote always) ecb-basic-buffer-sync) (equal t ecb-basic-buffer-sync) (and ecb-basic-buffer-sync (listp ecb-basic-buffer-sync) (not (member major-mode ecb-basic-buffer-sync)))) (progn (ecb-bodytrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "After conditions: Cur-buf: %s" (current-buffer)) (when (and ecb-minor-mode (not (ecb-windows-all-hidden)) (ecb-point-in-edit-window-number)) (let* ((filename (ecb-buffer-file-name (current-buffer)))) (cond ((and filename (ecb-buffer-or-file-readable-p filename) (or force ...)) (if (null ...) (let* ... ...)) (ecb-path-selected-source-set filename (buffer-name)) (ecb-select-source force) (ecb-update-methods-buffer--internal (quote scroll-to-begin)) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync (quote force))) ((eq major-mode (quote dired-mode)) (ecb-set-selected-directory (or ... ...))) (t nil))) (run-hooks (quote ecb-basic-buffer-sync-hook))) (ecb-autotrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "End:   Cur-buf: %s" (current-buffer)) nil))
  (let ((ecb-basic-buffer-sync (if (equal ecb-basic-buffer-sync (quote basic)) ecb-basic-buffer-sync ecb-basic-buffer-sync))) (when (or force (equal (quote always) ecb-basic-buffer-sync) (equal t ecb-basic-buffer-sync) (and ecb-basic-buffer-sync (listp ecb-basic-buffer-sync) (not (member major-mode ecb-basic-buffer-sync)))) (progn (ecb-bodytrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "After conditions: Cur-buf: %s" (current-buffer)) (when (and ecb-minor-mode (not (ecb-windows-all-hidden)) (ecb-point-in-edit-window-number)) (let* ((filename (ecb-buffer-file-name ...))) (cond ((and filename ... ...) (if ... ...) (ecb-path-selected-source-set filename ...) (ecb-select-source force) (ecb-update-methods-buffer--internal ...) (setq ecb-major-mode-selected-source major-mode) (ecb-tag-sync ...)) ((eq major-mode ...) (ecb-set-selected-directory ...)) (t nil))) (run-hooks (quote ecb-basic-buffer-sync-hook))) (ecb-autotrace-autocontrol/sync-fcn-error (quote ecb-basic-buffer-sync) "End:   Cur-buf: %s" (current-buffer)) nil)))
  ecb-basic-buffer-sync()
  apply(ecb-basic-buffer-sync nil)
  timer-event-handler([t 0 0 250000 t ecb-basic-buffer-sync nil idle 0])
ware commented 8 years ago

Have you been able to reproduce this with the 2.50 version of ecb?

metaturso commented 8 years ago

No, I haven't had this problem since the update to 2.50.

On Sun, Dec 27, 2015 at 11:09 PM, Ryan Ware notifications@github.com wrote:

Have you been able to reproduce this with the 2.50 version of ecb?

— Reply to this email directly or view it on GitHub https://github.com/ecb-home/ecb/issues/18#issuecomment-167446900.

ware commented 8 years ago

Ok. Since this is not reproducible on 2.50, I'm going to close this issue. If it reoccurs with he latest ECB, please reopen the issue.