diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2009-08-31 00:45:41 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2009-08-31 00:45:41 +0000 |
commit | 691a065ecb6920eb73f2a72229b8c803202a00b6 (patch) | |
tree | bc828c8002ac6d2f65c93d144038687b1d045bec /lisp/cedet/semantic/db-file.el | |
parent | afa85dfef0d74a70c383cdcd7ed7dc10f4e50025 (diff) | |
download | emacs-691a065ecb6920eb73f2a72229b8c803202a00b6.tar.gz |
cedet/semantic/db-debug.el: Don't require semantic/db-mode, since
semanticdb-current-database and semanticdb-current-table are now in
semantic/db.el.
cedet/semantic/db-ebrowse.el: Don't require semantic/db-mode, since
semanticdb-current-database and semanticdb-current-table are now in
semantic/db.el.
cedet/semantic/db-el.el: Require semantic/lex-spp.
Require semantic/db instead of semantic/db-search.
cedet/semantic/db-file.el: Declare inversion-test and
data-debug-insert-thing.
(semanticdb-load-database): Load inversion only if necessary.
cedet/semantic/db-find.el: Autoload semanticdb-find-default-throttle.
Defvar data-debug-thing-alist, and ede-current-project.
Declare data-debug-insert-stuff-list, data-debug-insert-tag-list,
semantic-scope-reset-cache, and semanticdb-typecache-notify-reset.
Require semantic/tag-file, and semantic/sort.
(semantic-reset): Require semantic/scope.
(semanticdb-partial-synchronize): Require semantic/db-typecache.
(semanticdb-find-table-for-include) Move up to avoid compiler warning.
cedet/semantic/db-global.el: Declare data-debug-new-buffer and
data-debug-insert-thing.
(semanticdb-project-database-global) Move up to avoid compiler warning.
cedet/semantic/db-javascript.el: Fix provide statement.
Require semantic/db-find instead of semantic/db-search.
cedet/semantic/db-mode.el: Declare semantic-lex-spp-set-dynamic-table.
(semanticdb-current-database, semanticdb-current-table): Move into
semantic/db.el
cedet/semantic/db-ref.el: Require eieio, semantic/db, and semantic/util.
Declare data-debug-new-buffer and data-debug-insert-object-slots.
Defvar semantic-case-fold. Require semantic/find when compiling.
cedet/semantic/db-typecache.el: Require semantic/tag-ls,
semantic/analyze/fcn, and semantic/scope. Declare
data-debug-insert-thing and data-debug-new-buffer.
cedet/semantic/db.el (semanticdb-search-results-table): Move class
definition here from semantic/db-search.el.
(semanticdb-current-database, semanticdb-current-table) Move variable
definitions here from semantic/db-mode.el.
Diffstat (limited to 'lisp/cedet/semantic/db-file.el')
-rw-r--r-- | lisp/cedet/semantic/db-file.el | 47 |
1 files changed, 27 insertions, 20 deletions
diff --git a/lisp/cedet/semantic/db-file.el b/lisp/cedet/semantic/db-file.el index a16f9bbf14a..12cadc43c61 100644 --- a/lisp/cedet/semantic/db-file.el +++ b/lisp/cedet/semantic/db-file.el @@ -1,4 +1,4 @@ -;;; db-file.el --- Save a semanticdb to a cache file. +;;; semantic/db-file.el --- Save a semanticdb to a cache file. ;;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009 ;;; Free Software Foundation, Inc. @@ -147,9 +147,11 @@ If DIRECTORY doesn't exist, create a new one." db)) ;;; File IO + +(declare-function inversion-test "inversion") + (defun semanticdb-load-database (filename) "Load the database FILENAME." - (require 'inversion) (condition-case foo (let* ((r (eieio-persistent-read filename)) (c (semanticdb-get-database-tables r)) @@ -160,23 +162,26 @@ If DIRECTORY doesn't exist, create a new one." (while c (oset (car c) parent-db r) (setq c (cdr c))) - (if (not (inversion-test 'semanticdb-file fv)) - (when (inversion-test 'semantic-tag tv) - ;; Incompatible version. Flush tables. - (semanticdb-flush-database-tables r) - ;; Reset the version to new version. - (oset r semantic-tag-version semantic-tag-version) - ;; Warn user - (message "Semanticdb file is old. Starting over for %s" - filename) - ) - ;; Version is not ok. Flush whole system - (message "semanticdb file is old. Starting over for %s" - filename) - ;; This database is so old, we need to replace it. - ;; We also need to delete it from the instance tracker. - (delete-instance r) - (setq r nil)) + (unless (and (equal semanticdb-file-version fv) + (equal semantic-tag-version tv)) + ;; Try not to load inversion unless we need it: + (require 'inversion) + (if (not (inversion-test 'semanticdb-file fv)) + (when (inversion-test 'semantic-tag tv) + ;; Incompatible version. Flush tables. + (semanticdb-flush-database-tables r) + ;; Reset the version to new version. + (oset r semantic-tag-version semantic-tag-version) + ;; Warn user + (message "Semanticdb file is old. Starting over for %s" + filename)) + ;; Version is not ok. Flush whole system + (message "semanticdb file is old. Starting over for %s" + filename) + ;; This database is so old, we need to replace it. + ;; We also need to delete it from the instance tracker. + (delete-instance r) + (setq r nil))) r) (error (message "Cache Error: [%s] %s, Restart" filename foo) @@ -262,6 +267,8 @@ Live files are either buffers in Emacs, or files existing on the filesystem." This variable is set to nil after the first error is encountered to prevent overload.") +(declare-function data-debug-insert-thing "data-debug") + (defmethod object-write ((obj semanticdb-table)) "When writing a table, we have to make sure we deoverlay it first. Restore the overlays after writting. @@ -435,4 +442,4 @@ Optional NOERROR prevents errors from being displayed." (provide 'semantic/db-file) -;;; semanticdb-file.el ends here +;;; semantic/db-file.el ends here |