From 4e893b81266ccc228cfb427b4d27e5d143884591 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Sun, 2 Mar 2025 15:21:21 +0100 Subject: [PATCH] * lisp/wid-edit.el (widget-get): Make faster. (cherry picked from commit 7b504f898d36b24d3ec4a55b9814edb27f379f6b) --- lisp/wid-edit.el | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el index 9300c5018fb..eaaa9f89bad 100644 --- a/lisp/wid-edit.el +++ b/lisp/wid-edit.el @@ -633,12 +633,16 @@ The value can later be retrieved with `widget-get'." "In WIDGET, get the value of PROPERTY. The value could either be specified when the widget was created, or later with `widget-put'." - (let (value found) - (while (and widget (not found)) - (if (setq found (plist-member (cdr widget) property)) - (setq value (cadr found)) - (setq widget (get (widget-type widget) 'widget-type)))) - value)) + (let (value) + (while (and widget + (let ((found (plist-member (cdr widget) property))) + (cond (found + (setq value (cadr found)) + nil) + (t + (setq widget (get (widget-type widget) 'widget-type)) + t))))) + value)) (defun widget-get-indirect (widget property) "In WIDGET, get the value of PROPERTY. -- 2.39.5