Segmentation fault with Gtk4 template class
System information
What is your operating system and version? Fedora 33 (toolbox via Silverblue)
What is your version of GJS? gjs-1.66.2-2.fc33
If the bug is related to GNOME Shell, what is your version of GNOME Shell? N/A
Bug information
Steps to reproduce
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<template class="TemplateWidget" parent="GtkWidget">
</template>
</interface>
#!/usr/bin/env gjs
imports.gi.versions.Gdk = '4.0';
imports.gi.versions.Gtk = '4.0';
const {GLib, GObject, Gio, Gtk} = imports.gi;
const TemplateWidget = GObject.registerClass({
GTypeName: 'TemplateWidget',
Template: 'file:///path/to/template.ui',
}, class PrefsWidget extends Gtk.Widget {
});
const prefsWidget = new PrefsWidget();
Current behaviour
#0 0x00007fffeeafbe15 in gtk_css_value_initial_compute.lto_priv () at /lib64/libgtk-4.so.1
#1 0x00007fffeeb0ec62 in gtk_css_static_style_compute_value () at /lib64/libgtk-4.so.1
#2 0x00007fffeeb10842 in gtk_css_static_style_new_compute () at /lib64/libgtk-4.so.1
#3 0x00007fffeeb10991 in gtk_css_static_style_get_default () at /lib64/libgtk-4.so.1
#4 0x00007fffeeaf9e8f in gtk_css_node_init () at /lib64/libgtk-4.so.1
#5 0x00007ffff7d6db97 in g_type_create_instance () at /lib64/libgobject-2.0.so.0
#6 0x00007ffff7d568c5 in g_object_new_internal () at /lib64/libgobject-2.0.so.0
#7 0x00007ffff7d5769d in g_object_new_with_properties () at /lib64/libgobject-2.0.so.0
#8 0x00007ffff7d58311 in g_object_new () at /lib64/libgobject-2.0.so.0
#9 0x00007fffeeab90da in gtk_widget_init () at /lib64/libgtk-4.so.1
#10 0x00007ffff7d6db97 in g_type_create_instance () at /lib64/libgobject-2.0.so.0
#11 0x00007ffff7d566a8 in g_object_constructor.lto_priv () at /lib64/libgobject-2.0.so.0
#12 0x00007ffff7d56816 in g_object_new_internal () at /lib64/libgobject-2.0.so.0
#13 0x00007ffff7d5769d in g_object_new_with_properties () at /lib64/libgobject-2.0.so.0
#14 0x00007ffff7f0961e in ObjectBase::init_gobject(JSContext*, unsigned int, JS::Value*) () at /lib64/libgjs.so.0
#15 0x00007ffff5ede338 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) () at /lib64/libmozjs-78.so.0
#16 0x00007ffff5ede7a2 in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
() at /lib64/libmozjs-78.so.0
#17 0x00007ffff6053e93 in js::fun_call(JSContext*, unsigned int, JS::Value*) () at /lib64/libmozjs-78.so.0
#18 0x00007ffff5ede338 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) () at /lib64/libmozjs-78.so.0
#19 0x00007ffff5ece922 in Interpret(JSContext*, js::RunState&) () at /lib64/libmozjs-78.so.0
#20 0x00007ffff5eddce9 in js::RunScript(JSContext*, js::RunState&) () at /lib64/libmozjs-78.so.0
#21 0x00007ffff5ede164 in js::InternalCallOrConstruct(JSContext*, JS::CallArgs const&, js::MaybeConstruct, js::CallReason) () at /lib64/libmozjs-78.so.0
#22 0x00007ffff5ede7a2 in js::Call(JSContext*, JS::Handle<JS::Value>, JS::Handle<JS::Value>, js::AnyInvokeArgs const&, JS::MutableHandle<JS::Value>, js::CallReason)
() at /lib64/libmozjs-78.so.0
#23 0x00007ffff5f556a7 in JS_CallFunctionValue(JSContext*, JS::Handle<JSObject*>, JS::Handle<JS::Value>, JS::HandleValueArray const&, JS::MutableHandle<JS::Value>)
() at /lib64/libmozjs-78.so.0
#24 0x00007ffff7f1527c in GIWrapperBase<ObjectBase, ObjectPrototype, ObjectInstance>::constructor(JSContext*, unsigned int, JS::Value*) () at /lib64/libgjs.so.0
#25 0x00007ffff5edf151 in InternalConstruct(JSContext*, js::AnyConstructArgs const&) [clone .lto_priv.0] () at /lib64/libmozjs-78.so.0
#26 0x00007ffff5ed0458 in Interpret(JSContext*, js::RunState&) () at /lib64/libmozjs-78.so.0
#27 0x00007ffff5eddce9 in js::RunScript(JSContext*, js::RunState&) () at /lib64/libmozjs-78.so.0
#28 0x00007ffff5edf366 in js::ExecuteKernel(JSContext*, JS::Handle<JSScript*>, JS::Handle<JSObject*>, JS::Handle<JS::Value>, js::AbstractFramePtr, JS::MutableHandle<JS::Value>) () at /lib64/libmozjs-78.so.0
#29 0x00007ffff5fe5877 in bool EvaluateSourceBuffer<char16_t>(JSContext*, js::ScopeKind, JS::Handle<JSObject*>, JS::ReadOnlyCompileOptions const&, JS::SourceText<char16_t>&, JS::MutableHandle<JS::Value>) [clone .lto_priv.0] () at /lib64/libmozjs-78.so.0
#30 0x00007ffff5fcac67 in JS::Evaluate(JSContext*, JS::Handle<JS::StackGCVector<JSObject*, js::TempAllocPolicy> >, JS::ReadOnlyCompileOptions const&, JS::SourceText<char16_t>&, JS::MutableHandle<JS::Value>) () at /lib64/libmozjs-78.so.0
#31 0x00007ffff7f1e357 in GjsContextPrivate::eval_with_scope(JS::Handle<JSObject*>, char const*, long, char const*, JS::MutableHandle<JS::Value>) () at /lib64/libgjs.so.0
#32 0x00007ffff7f1ebff in gjs_context_eval () at /lib64/libgjs.so.0
#33 0x0000555555556ddd in main ()
Edited by Andy Holmes