GNU bug report logs - #33294
xwidget-insert crashes Emacs

Previous Next

Package: emacs;

Reported by: Evgeny Zajcev <lg.zevlg <at> gmail.com>

Date: Tue, 6 Nov 2018 21:15:01 UTC

Severity: normal

Tags: fixed

Fixed in version 26.2

Done: Robert Pluim <rpluim <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: gazally <at> runbox.com, rpluim <at> gmail.com, lg.zevlg <at> gmail.com, 33294 <at> debbugs.gnu.org
Subject: bug#33294: xwidget-insert crashes Emacs
Date: Fri, 09 Nov 2018 08:29:48 -0500
>> > I admit I don't understand why PVEC_XWIDGET and PVEC_XWIDGET_VIEW are
>> > in the "impossible" cases.  They are first-class Lisp objects, AFAICT.
>> If you say so, then they most likely are, indeed.  I personally didn't
>> (and still don't) know enough about those to know what to do with them.
> Can you tell what are the guidelines for putting a PVEC object into
> the "impossible" category in the context of type-of?

The "impossible" category is for when such objects can never be passed
to `type-of`, typically because they are not available to Elisp.

But there's no harm/risk to "allow" a particular kind of object even if
it's actually impossible for it to be passed to type-of.

Accordingly, I just installed the patch below into emacs-26.


        Stefan


diff --git a/src/data.c b/src/data.c
index 8d58cbd941..eea9ccedbb 100644
--- a/src/data.c
+++ b/src/data.c
@@ -276,10 +276,12 @@ for example, (type-of 1) returns `integer'.  */)
           }
         case PVEC_MODULE_FUNCTION:
           return Qmodule_function;
-        /* "Impossible" cases.  */
         case PVEC_XWIDGET:
-        case PVEC_OTHER:
+          return Qxwidget;
         case PVEC_XWIDGET_VIEW:
+          return Qxwidget_view;
+        /* "Impossible" cases.  */
+        case PVEC_OTHER:
         case PVEC_SUB_CHAR_TABLE:
         case PVEC_FREE: ;
         }
@@ -3756,6 +3758,8 @@ syms_of_data (void)
   DEFSYM (Qfont_entity, "font-entity");
   DEFSYM (Qfont_object, "font-object");
   DEFSYM (Qterminal, "terminal");
+  DEFSYM (Qxwidget, "xwidget");
+  DEFSYM (Qxwidget_view, "xwidget-view");
 
   DEFSYM (Qdefun, "defun");
 




This bug report was last modified 6 years and 256 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.