]> git.eshelyaron.com Git - emacs.git/commitdiff
* lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): Simplify
authorStefan Monnier <monnier@iro.umontreal.ca>
Mon, 12 Apr 2021 16:55:52 +0000 (12:55 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Mon, 12 Apr 2021 16:55:52 +0000 (12:55 -0400)
lisp/emacs-lisp/memory-report.el

index ecbca280e598856b7e98a2b34a1d33e8b2b45c54..f4f03133b0f4264f3decbee0200a0407b552293a 100644 (file)
@@ -182,7 +182,7 @@ by counted more than once."
 
 (cl-defmethod memory-report--object-size-1 (_ (value symbol))
   ;; Don't count global symbols -- makes sizes of lists of symbols too
-  ;; heavey.
+  ;; heavy.
   (if (intern-soft value obarray)
       0
     (memory-report--size 'symbol)))
@@ -214,14 +214,14 @@ by counted more than once."
       (setf (gethash value counted) t)
       (when (car value)
         (cl-incf total (memory-report--object-size counted (car value))))
-      (if (cdr value)
-          (if (consp (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)))
+      (let ((next (cdr value)))
+        (setq value (when next
+                      (if (consp next)
+                          (unless (gethash next counted)
+                            (cdr value))
+                        (cl-incf total (memory-report--object-size
+                                        counted next))
+                        nil)))))
     total))
 
 (cl-defmethod memory-report--object-size-1 (counted (value vector))