]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix infloop in memory-report
authorLars Ingebrigtsen <larsi@gnus.org>
Fri, 25 Dec 2020 23:57:01 +0000 (00:57 +0100)
committerLars Ingebrigtsen <larsi@gnus.org>
Fri, 25 Dec 2020 23:57:01 +0000 (00:57 +0100)
* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1):
Fix infloop on circular lists.

lisp/emacs-lisp/memory-report.el

index b532ddc56c50ba57c5dff50fde9b20bd0a496033..332749987c4e7bab7a038b67c05eb08233ed3c9c 100644 (file)
@@ -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)))