Mercurial > emacs
diff lisp/cedet/semantic/db-file.el @ 104441:902d22a2d922
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.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Mon, 31 Aug 2009 00:45:41 +0000 |
parents | 2e15afd37998 |
children | e59328b6f117 |
line wrap: on
line diff
--- a/lisp/cedet/semantic/db-file.el Mon Aug 31 00:13:42 2009 +0000 +++ b/lisp/cedet/semantic/db-file.el Mon Aug 31 00:45:41 2009 +0000 @@ -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 @@ 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 @@ (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 @@ 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 @@ (provide 'semantic/db-file) -;;; semanticdb-file.el ends here +;;; semantic/db-file.el ends here