changeset 68003:a45d40da31da

(flymake-base-dir, flymake-master-file-name, flymake-temp-master-file-name) (flymake-temp-source-file-name): New buffer-local vars. (flymake-buffer-data, flymake-get-buffer-value, flymake-set-buffer-value): Replace those hash-tables by the new buffer-local vars. Update callers.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 03 Jan 2006 19:05:06 +0000
parents 84f2196866ae
children 1a9ccbce1b6e
files lisp/ChangeLog lisp/progmodes/flymake.el
diffstat 2 files changed, 51 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Tue Jan 03 18:44:42 2006 +0000
+++ b/lisp/ChangeLog	Tue Jan 03 19:05:06 2006 +0000
@@ -1,5 +1,12 @@
 2006-01-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 
+	* progmodes/flymake.el (flymake-temp-source-file-name)
+	(flymake-master-file-name, flymake-temp-master-file-name)
+	(flymake-base-dir): New buffer-local vars.
+	(flymake-buffer-data, flymake-get-buffer-value)
+	(flymake-set-buffer-value): Replace those hash-tables by the new
+	buffer-local vars.  Update callers.
+
 	* progmodes/flymake.el (flymake-check-start-time)
 	(flymake-check-was-interrupted, flymake-err-info, flymake-is-running)
 	(flymake-last-change-time, flymake-new-err-info, flymake-timer):
--- a/lisp/progmodes/flymake.el	Tue Jan 03 18:44:42 2006 +0000
+++ b/lisp/progmodes/flymake.el	Tue Jan 03 19:05:06 2006 +0000
@@ -240,17 +240,6 @@
 (defvar flymake-processes nil
   "List of currently active flymake processes.")
 
-(defvar flymake-buffer-data nil
-  "Data specific to syntax check tool, in name-value pairs.")
-
-(make-variable-buffer-local 'flymake-buffer-data)
-
-(defun flymake-get-buffer-value (buffer name)
-  (gethash name (with-current-buffer buffer flymake-buffer-data)))
-
-(defun flymake-set-buffer-value (buffer name value)
-  (puthash name value (with-current-buffer buffer flymake-buffer-data)))
-
 (defvar flymake-output-residual nil)
 
 (make-variable-buffer-local 'flymake-output-residual)
@@ -1178,7 +1167,6 @@
       (flymake-clear-project-include-dirs-cache)
 
       (setq flymake-check-was-interrupted nil)
-      (setq flymake-buffer-data (flymake-makehash 'equal))
 
       (let* ((source-file-name  buffer-file-name)
              (init-f (flymake-get-init-function source-file-name))
@@ -1576,19 +1564,33 @@
 	  (setq suffix (substring suffix 0 slash-pos))
 	(setq suffix "")))))
 
+(defvar flymake-temp-source-file-name nil)
+(make-variable-buffer-local 'flymake-temp-source-file-name)
+
+(defvar flymake-master-file-name nil)
+(make-variable-buffer-local 'flymake-master-file-name)
+
+(defvar flymake-temp-master-file-name nil)
+(make-variable-buffer-local 'flymake-temp-master-file-name)
+
+(defvar flymake-base-dir nil)
+(make-variable-buffer-local 'flymake-base-dir)
+
 (defun flymake-init-create-temp-buffer-copy (buffer create-temp-f)
   "Make a temporary copy of the current buffer, save its name in buffer data and return the name."
   (let*  ((source-file-name       (buffer-file-name buffer))
 	  (temp-source-file-name  (funcall create-temp-f source-file-name "flymake")))
 
     (flymake-save-buffer-in-file buffer temp-source-file-name)
-    (flymake-set-buffer-value buffer "temp-source-file-name" temp-source-file-name)
+    (with-current-buffer buffer
+      (setq flymake-temp-source-file-name temp-source-file-name))
     temp-source-file-name))
 
 (defun flymake-simple-cleanup (buffer)
   "Do cleanup after `flymake-init-create-temp-buffer-copy'.
 Delete temp file."
-  (let* ((temp-source-file-name (flymake-get-buffer-value buffer "temp-source-file-name")))
+  (let* ((temp-source-file-name (with-current-buffer buffer
+                                  flymake-temp-source-file-name)))
     (flymake-safe-delete-file temp-source-file-name)
     (with-current-buffer buffer
       (setq flymake-last-change-time nil))))
@@ -1598,12 +1600,16 @@
 Return full-name.  Names are real, not patched."
   (let* ((real-name              nil)
 	 (source-file-name       (buffer-file-name buffer))
-	 (master-file-name       (flymake-get-buffer-value buffer "master-file-name"))
-	 (temp-source-file-name  (flymake-get-buffer-value buffer "temp-source-file-name"))
-	 (temp-master-file-name  (flymake-get-buffer-value buffer "temp-master-file-name"))
-	 (base-dirs              (list (flymake-get-buffer-value buffer "base-dir")
-				       (file-name-directory source-file-name)
-				       (if master-file-name (file-name-directory master-file-name) nil)))
+	 (master-file-name
+          (with-current-buffer buffer flymake-master-file-name))
+	 (temp-source-file-name
+          (with-current-buffer buffer flymake-temp-source-file-name))
+	 (temp-master-file-name
+          (with-current-buffer buffer flymake-temp-master-file-name))
+	 (base-dirs
+          (list (with-current-buffer buffer flymake-base-dir)
+                (file-name-directory source-file-name)
+                (if master-file-name (file-name-directory master-file-name))))
 	 (files                  (list (list source-file-name       source-file-name)
 				       (list temp-source-file-name  source-file-name)
 				       (list master-file-name       master-file-name)
@@ -1657,25 +1663,22 @@
 
 (defun flymake-init-find-buildfile-dir (buffer source-file-name buildfile-name)
   "Find buildfile, store its dir in buffer data and return its dir, if found."
-  (let* ((buildfile-dir  (flymake-find-buildfile buildfile-name
-						 (file-name-directory source-file-name)
-						 flymake-buildfile-dirs)))
-    (if (not buildfile-dir)
-	(progn
-	  (flymake-log 1 "no buildfile (%s) for %s" buildfile-name source-file-name)
-          (with-current-buffer buffer
-            (flymake-report-fatal-status "NOMK" (format "No buildfile (%s) found for %s" buildfile-name source-file-name)))
-	  )
-      (progn
-	(flymake-set-buffer-value buffer "base-dir" buildfile-dir)))
-    buildfile-dir))
+  (let* ((buildfile-dir
+          (flymake-find-buildfile buildfile-name
+                                  (file-name-directory source-file-name)
+                                  flymake-buildfile-dirs)))
+    (if buildfile-dir
+        (with-current-buffer buffer (setq flymake-base-dir buildfile-dir))
+      (flymake-log 1 "no buildfile (%s) for %s" buildfile-name source-file-name)
+      (with-current-buffer buffer
+        (flymake-report-fatal-status
+         "NOMK" (format "No buildfile (%s) found for %s"
+                        buildfile-name source-file-name))))))
 
 (defun flymake-init-create-temp-source-and-master-buffer-copy (buffer get-incl-dirs-f create-temp-f master-file-masks include-regexp-list)
   "Find master file (or buffer), create it's copy along with a copy of the source file."
   (let* ((source-file-name       (buffer-file-name buffer))
 	 (temp-source-file-name  (flymake-init-create-temp-buffer-copy buffer create-temp-f))
-	 (master-file-name       nil)
-	 (temp-master-file-name  nil)
 	 (master-and-temp-master (flymake-create-master-file
 				  source-file-name temp-source-file-name
 				  get-incl-dirs-f create-temp-f
@@ -1687,18 +1690,14 @@
           (when (bufferp buffer)
             (with-current-buffer buffer
               (flymake-report-status "!" "")))	; NOMASTER
-	  )
-      (progn
-	(setq master-file-name       (nth 0 master-and-temp-master))
-	(setq temp-master-file-name  (nth 1 master-and-temp-master))
-	(flymake-set-buffer-value buffer "master-file-name"      master-file-name)
-	(flymake-set-buffer-value buffer "temp-master-file-name" temp-master-file-name)
-	))
-    temp-master-file-name))
+          nil)
+      (with-current-buffer buffer
+        (setq flymake-master-file-name (nth 0 master-and-temp-master))
+        (setq flymake-temp-master-file-name (nth 1 master-and-temp-master))))))
 
 (defun flymake-master-cleanup (buffer)
   (flymake-simple-cleanup buffer)
-  (flymake-safe-delete-file (flymake-get-buffer-value buffer "temp-master-file-name")))
+  (flymake-safe-delete-file (with-current-buffer buffer flymake-temp-master-file-name)))
 
 ;;;; make-specific init-cleanup routines
 (defun flymake-get-syntax-check-program-args (source-file-name base-dir use-relative-base-dir use-relative-source get-cmd-line-f)
@@ -1778,7 +1777,8 @@
 
 (defun flymake-simple-java-cleanup (buffer)
   "Cleanup after `flymake-simple-make-java-init' -- delete temp file and dirs."
-  (let* ((temp-source-file-name (flymake-get-buffer-value buffer "temp-source-file-name")))
+  (let* ((temp-source-file-name (with-current-buffer buffer
+                                  flymake-temp-source-file-name)))
     (flymake-safe-delete-file temp-source-file-name)
     (when temp-source-file-name
       (flymake-delete-temp-directory (file-name-directory temp-source-file-name)))))