emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/obarray f3915f0e003 3/6: Add obarray-clear and use it


From: Mattias Engdegård
Subject: scratch/obarray f3915f0e003 3/6: Add obarray-clear and use it
Date: Sat, 17 Feb 2024 14:33:07 -0500 (EST)

branch: scratch/obarray
commit f3915f0e00396e1c54018d1f968915701df2e34b
Author: Mattias Engdegård <mattiase@acm.org>
Commit: Mattias Engdegård <mattiase@acm.org>

    Add obarray-clear and use it
    
    * lisp/obarray.el (obarray-clear): New.
    * lisp/abbrev.el (clear-abbrev-table):
    * lisp/vc/vc.el (vc-clear-context): Use it instead of assuming the
    obarray is a vector that can be 0-filled.
---
 lisp/abbrev.el  | 3 +--
 lisp/obarray.el | 5 +++++
 lisp/vc/vc.el   | 2 +-
 3 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/lisp/abbrev.el b/lisp/abbrev.el
index b523977fed5..188eeb720c0 100644
--- a/lisp/abbrev.el
+++ b/lisp/abbrev.el
@@ -602,8 +602,7 @@ It is nil if the abbrev has already been unexpanded.")
   "Undefine all abbrevs in abbrev table TABLE, leaving TABLE empty."
   (setq abbrevs-changed t)
   (let* ((sym (obarray-get table "")))
-    (dotimes (i (length table))
-      (aset table i 0))
+    (obarray-clear table)
     ;; Preserve the table's properties.
     (cl-assert sym)
     (let ((newsym (obarray-put table "")))
diff --git a/lisp/obarray.el b/lisp/obarray.el
index a26992df8e2..e1ebb2ade51 100644
--- a/lisp/obarray.el
+++ b/lisp/obarray.el
@@ -66,5 +66,10 @@ Return t on success, nil otherwise."
   "Call function FN on every symbol in obarray OB and return nil."
   (mapatoms fn ob))
 
+(defun obarray-clear (ob)
+  "Remove all symbols from obarray OB."
+  ;; FIXME: This doesn't change the symbols to uninterned status.
+  (fillarray ob 0))
+
 (provide 'obarray)
 ;;; obarray.el ends here
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 619b469bebb..3cd17276fa4 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -935,7 +935,7 @@ is sensitive to blank lines."
 (defun vc-clear-context ()
   "Clear all cached file properties."
   (interactive)
-  (fillarray vc-file-prop-obarray 0))
+  (obarray-clear vc-file-prop-obarray))
 
 (defmacro with-vc-properties (files form settings)
   "Execute FORM, then maybe set per-file properties for FILES.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]