emacs-diffs
[Top][All Lists]
Advanced

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

master da508cf 2/2: Use `xwidget-live-p' inside `xwidget-at'.


From: Po Lu
Subject: master da508cf 2/2: Use `xwidget-live-p' inside `xwidget-at'.
Date: Sat, 20 Nov 2021 01:34:04 -0500 (EST)

branch: master
commit da508cf4bd437f8fd9a06fce33f6e62590e1e4d9
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Use `xwidget-live-p' inside `xwidget-at'.
    
    It should no longer be possible for Lisp code to abuse internal
    xwidget state, or cause crashes with killed xwidgets and such,
    so the pedantic checking done in this function is no longer
    necessary.  (In fact, it is even wrong, as it won't catch
    killed xwidgets.)
    
    * lisp/xwidget.el (xwidget-at): Use `xwidget-live-p'.
---
 lisp/xwidget.el | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/lisp/xwidget.el b/lisp/xwidget.el
index 89f81bb..91580ef 100644
--- a/lisp/xwidget.el
+++ b/lisp/xwidget.el
@@ -58,6 +58,7 @@
 (declare-function xwidget-webkit-back-forward-list "xwidget.c" (xwidget 
&optional limit))
 (declare-function xwidget-webkit-estimated-load-progress "xwidget.c" (xwidget))
 (declare-function xwidget-webkit-set-cookie-storage-file "xwidget.c" (xwidget 
file))
+(declare-function xwidget-live-p "xwidget.c" (xwidget))
 
 (defgroup xwidget nil
   "Displaying native widgets in Emacs buffers."
@@ -77,12 +78,9 @@ This returns the result of `make-xwidget'."
 
 (defun xwidget-at (pos)
   "Return xwidget at POS."
-  ;; TODO this function is a bit tedious because the C layer isn't well
-  ;; protected yet and xwidgetp apparently doesn't work yet.
   (let* ((disp (get-text-property pos 'display))
-         (xw (car (cdr (cdr  disp)))))
-    ;;(if (xwidgetp  xw) xw nil)
-    (if (equal 'xwidget (car disp)) xw)))
+         (xw (car (cdr (cdr disp)))))
+    (when (xwidget-live-p xw) xw)))
 
 
 



reply via email to

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