summaryrefslogtreecommitdiff
path: root/lisp/cedet/semantic/db-file.el
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2009-08-31 00:45:41 +0000
committerChong Yidong <cyd@stupidchicken.com>2009-08-31 00:45:41 +0000
commit691a065ecb6920eb73f2a72229b8c803202a00b6 (patch)
treebc828c8002ac6d2f65c93d144038687b1d045bec /lisp/cedet/semantic/db-file.el
parentafa85dfef0d74a70c383cdcd7ed7dc10f4e50025 (diff)
downloademacs-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.el47
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