branch: externals/beardbolt commit 42edd955ae7c4e05d3e2f28cab0309f2298ba3a2 Author: Jay Kamat <jaygka...@gmail.com> Commit: Jay Kamat <jaygka...@gmail.com>
Move filename massaging out of hot loop --- rmsbolt.el | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/rmsbolt.el b/rmsbolt.el index f15dd8a6d3..9c1ebff231 100644 --- a/rmsbolt.el +++ b/rmsbolt.el @@ -1065,7 +1065,10 @@ Argument SRC-BUFFER source buffer." (buffer-file-name src-buffer))) (result nil) (func nil) - (source-linum nil)) + (source-linum nil) + (def-dir (or (buffer-local-value 'rmsbolt-default-directory src-buffer) + (and src-file-name + (file-name-directory src-file-name))))) (dolist (line asm-lines) (catch 'continue (when (and (> (length result) rmsbolt-binary-asm-limit) @@ -1077,9 +1080,7 @@ Argument SRC-BUFFER source buffer." ;; If we get a non-absolute .file path, check to see if we ;; have a default dir. If not, treat it like we are in the ;; src directory. - (let ((default-directory (or - (buffer-local-value 'rmsbolt-default-directory src-buffer) - (file-name-directory src-file-name)))) + (let ((default-directory def-dir)) (if (file-equal-p src-file-name (match-string 1 line)) (setq source-linum (string-to-number (match-string 2 line))) @@ -1113,7 +1114,10 @@ Argument SRC-BUFFER source buffer." (result nil) (prev-label nil) (source-linum nil) - (source-file-map (make-hash-table :test #'eq))) + (source-file-map (make-hash-table :test #'eq)) + (def-dir (or (buffer-local-value 'rmsbolt-default-directory src-buffer) + (and src-file-name + (file-name-directory src-file-name))))) (dolist (line asm-lines) (let* ((raw-match (or (string-match rmsbolt-label-def line) (string-match rmsbolt-assignment-def line))) @@ -1138,9 +1142,7 @@ Argument SRC-BUFFER source buffer." ;; If we get a non-absolute .file path, check to see if we ;; have a default dir. If not, treat it like we are in the ;; src directory. - (let ((default-directory (or - (buffer-local-value 'rmsbolt-default-directory src-buffer) - (file-name-directory src-file-name)))) + (let ((default-directory def-dir)) (file-equal-p src-file-name (gethash (string-to-number (match-string 1 line))