summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2020-12-26 00:57:01 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2020-12-26 00:57:01 +0100
commit90e40099debaa876273ae560ed8e66985719dd0c (patch)
tree4d31aa62c13c879e60f0ea62686a6bf55e9a8beb /lisp/emacs-lisp
parentd18b1c8c7583b981d4f3d687e49e82250d51634f (diff)
downloademacs-90e40099debaa876273ae560ed8e66985719dd0c.tar.gz
emacs-90e40099debaa876273ae560ed8e66985719dd0c.tar.bz2
emacs-90e40099debaa876273ae560ed8e66985719dd0c.zip
Fix infloop in memory-report
* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): Fix infloop on circular lists.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/memory-report.el4
1 files changed, 3 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/memory-report.el b/lisp/emacs-lisp/memory-report.el
index b532ddc56c5..332749987c4 100644
--- a/lisp/emacs-lisp/memory-report.el
+++ b/lisp/emacs-lisp/memory-report.el
@@ -204,7 +204,9 @@ by counted more than once."
(cl-incf total (memory-report--object-size counted (car value))))
(if (cdr value)
(if (consp (cdr value))
- (setq value (cdr value))
+ (if (gethash (cdr value) counted)
+ (setq value nil)
+ (setq value (cdr value)))
(cl-incf total (memory-report--object-size counted (cdr value)))
(setq value nil))
(setq value nil)))