Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package gjs for openSUSE:Factory checked in at 2021-01-15 19:44:46 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gjs (Old) and /work/SRC/openSUSE:Factory/.gjs.new.28504 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gjs" Fri Jan 15 19:44:46 2021 rev:93 rq:862316 version:1.66.2 Changes: -------- --- /work/SRC/openSUSE:Factory/gjs/gjs.changes 2020-11-23 10:28:16.521213162 +0100 +++ /work/SRC/openSUSE:Factory/.gjs.new.28504/gjs.changes 2021-01-15 19:44:56.977907604 +0100 @@ -1,0 +2,16 @@ +Sun Jan 10 11:28:08 UTC 2021 - Bj??rn Lie <bjorn....@gmail.com> + +- Update to version 1.66.2: + + Performance improvements and crash fixes backported from the + development branch. + + Bug fixes enabling use of GTK 4. + + Closed bugs and merge requests: + - Error in function "_init()" in module + "modules/overrides/GObject.js" + - Revert "arg-cache: Save space by not caching GType" + - gi/wrapperutils: Move gjs_get_string_id() into resolve() + implementations + - overrides/Gtk: Set BuilderScope in class init + - Fix readline build on certain systems + +------------------------------------------------------------------- Old: ---- gjs-1.66.1.tar.xz New: ---- gjs-1.66.2.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gjs.spec ++++++ --- /var/tmp/diff_new_pack.Rthp62/_old 2021-01-15 19:44:57.633908581 +0100 +++ /var/tmp/diff_new_pack.Rthp62/_new 2021-01-15 19:44:57.637908587 +0100 @@ -1,7 +1,7 @@ # # spec file for package gjs # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: gjs -Version: 1.66.1 +Version: 1.66.2 Release: 0 Summary: JavaScript bindings based on gobject-introspection and Mozilla License: MIT AND LGPL-2.0-or-later ++++++ gjs-1.66.1.tar.xz -> gjs-1.66.2.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/NEWS new/gjs-1.66.2/NEWS --- old/gjs-1.66.1/NEWS 2020-10-09 00:26:17.382874000 +0200 +++ new/gjs-1.66.2/NEWS 2021-01-10 00:10:12.997189500 +0100 @@ -1,3 +1,21 @@ +Version 1.66.2 +-------------- + +- Performance improvements and crash fixes backported from the development + branch. + +- Bug fixes enabling use of GTK 4. + +- Closed bugs and merge requests: + + * Error in function "_init()" in module "modules/overrides/GObject.js" [#238, + !508, Nina Pypchenko] + * Revert "arg-cache: Save space by not caching GType" [!512, Jonas Dre??ler] + * gi/wrapperutils: Move gjs_get_string_id() into resolve() implementations + [!513, Jonas Dre??ler] + * overrides/Gtk: Set BuilderScope in class init [!527, Florian M??llner] + * fix readline build on certain systems [!543, Jakub Kul??k] + Version 1.66.1 -------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/arg-cache.cpp new/gjs-1.66.2/gi/arg-cache.cpp --- old/gjs-1.66.1/gi/arg-cache.cpp 2020-10-09 00:26:17.384874000 +0200 +++ new/gjs-1.66.2/gi/arg-cache.cpp 2021-01-10 00:10:12.998189400 +0100 @@ -29,7 +29,6 @@ #include <ffi.h> #include <girepository.h> -#include <glib-object.h> #include <glib.h> #include <js/Conversions.h> @@ -606,7 +605,7 @@ if (value.isNull()) return self->handle_nullable(cx, arg); - GType gtype = g_registered_type_info_get_g_type(self->contents.info); + GType gtype = self->contents.object.gtype; if (!value.isObject()) return report_gtype_mismatch(cx, self->arg_name, value, gtype); @@ -619,7 +618,7 @@ return BoxedBase::transfer_to_gi_argument(cx, object, arg, GI_DIRECTION_IN, self->transfer, gtype, - self->contents.info); + self->contents.object.info); } // Unions include ClutterEvent and GdkEvent, which occur fairly often in an @@ -632,7 +631,7 @@ if (value.isNull()) return self->handle_nullable(cx, arg); - GType gtype = g_registered_type_info_get_g_type(self->contents.info); + GType gtype = self->contents.object.gtype; g_assert(gtype != G_TYPE_NONE); if (!value.isObject()) @@ -641,7 +640,7 @@ JS::RootedObject object(cx, &value.toObject()); return UnionBase::transfer_to_gi_argument(cx, object, arg, GI_DIRECTION_IN, self->transfer, gtype, - self->contents.info); + self->contents.object.info); } GJS_JSAPI_RETURN_CONVENTION @@ -684,7 +683,7 @@ // ownership, so we need to do the same here. return BoxedBase::transfer_to_gi_argument( cx, object, arg, GI_DIRECTION_IN, GI_TRANSFER_EVERYTHING, G_TYPE_BYTES, - self->contents.info); + self->contents.object.info); } GJS_JSAPI_RETURN_CONVENTION @@ -694,7 +693,7 @@ if (value.isNull()) return self->handle_nullable(cx, arg); - GType gtype = g_registered_type_info_get_g_type(self->contents.info); + GType gtype = self->contents.object.gtype; g_assert(gtype != G_TYPE_NONE); if (!value.isObject()) @@ -723,7 +722,7 @@ if (value.isNull()) return self->handle_nullable(cx, arg); - GType gtype = g_registered_type_info_get_g_type(self->contents.info); + GType gtype = self->contents.object.gtype; g_assert(gtype != G_TYPE_NONE); if (!value.isObject()) @@ -742,7 +741,7 @@ if (value.isNull()) return self->handle_nullable(cx, arg); - GType gtype = g_registered_type_info_get_g_type(self->contents.info); + GType gtype = self->contents.object.gtype; g_assert(gtype != G_TYPE_NONE); if (!value.isObject()) @@ -996,7 +995,8 @@ GjsFunctionCallState*, GIArgument* in_arg, GIArgument* out_arg [[maybe_unused]]) { - GType gtype = g_registered_type_info_get_g_type(self->contents.info); + GType gtype = self->contents.object.gtype; + g_assert(g_type_is_a(gtype, G_TYPE_BOXED)); if (!gjs_arg_get<void*>(in_arg)) @@ -1007,7 +1007,7 @@ } static void gjs_arg_cache_interface_free(GjsArgumentCache* self) { - g_clear_pointer(&self->contents.info, g_base_info_unref); + g_clear_pointer(&self->contents.object.info, g_base_info_unref); } static const GjsArgumentMarshallers skip_all_marshallers = { @@ -1403,7 +1403,8 @@ case GI_INFO_TYPE_INTERFACE: case GI_INFO_TYPE_UNION: { GType gtype = g_registered_type_info_get_g_type(interface_info); - self->contents.info = g_base_info_ref(interface_info); + self->contents.object.gtype = gtype; + self->contents.object.info = g_base_info_ref(interface_info); // Transfer handling is a bit complex here, because some of our _in // marshallers know not to copy stuff if we don't need to. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/arg-cache.h new/gjs-1.66.2/gi/arg-cache.h --- old/gjs-1.66.1/gi/arg-cache.h 2020-10-09 00:26:17.384874000 +0200 +++ new/gjs-1.66.2/gi/arg-cache.h 2021-01-10 00:10:12.998189400 +0100 @@ -30,6 +30,7 @@ #include <stdint.h> #include <girepository.h> +#include <glib-object.h> #include <glib.h> // for g_assert #include <js/RootingAPI.h> @@ -83,7 +84,10 @@ } number; // boxed / union / GObject - GIRegisteredTypeInfo* info; + struct { + GType gtype; + GIBaseInfo* info; + } object; // foreign structures GIStructInfo* tmp_foreign_info; @@ -163,7 +167,7 @@ // if sizeof(GjsArgumentCache) is increased. // Note that this check is not applicable for clang-cl builds, as Windows is // an LLP64 system -static_assert(sizeof(GjsArgumentCache) <= 104, +static_assert(sizeof(GjsArgumentCache) <= 112, "Think very hard before increasing the size of GjsArgumentCache. " "One is allocated for every argument to every introspected " "function."); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/boxed.cpp new/gjs-1.66.2/gi/boxed.cpp --- old/gjs-1.66.1/gi/boxed.cpp 2020-10-09 00:26:17.384874000 +0200 +++ new/gjs-1.66.2/gi/boxed.cpp 2021-01-10 00:10:12.999189400 +0100 @@ -69,11 +69,18 @@ // See GIWrapperBase::resolve(). bool BoxedPrototype::resolve_impl(JSContext* cx, JS::HandleObject obj, - JS::HandleId, const char* prop_name, - bool* resolved) { + JS::HandleId id, bool* resolved) { + JS::UniqueChars prop_name; + if (!gjs_get_string_id(cx, id, &prop_name)) + return false; + if (!prop_name) { + *resolved = false; + return true; // not resolved, but no error + } + // Look for methods and other class properties GjsAutoFunctionInfo method_info = - g_struct_info_find_method(info(), prop_name); + g_struct_info_find_method(info(), prop_name.get()); if (!method_info) { *resolved = false; return true; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/boxed.h new/gjs-1.66.2/gi/boxed.h --- old/gjs-1.66.1/gi/boxed.h 2020-10-09 00:26:17.385874000 +0200 +++ new/gjs-1.66.2/gi/boxed.h 2021-01-10 00:10:12.999189400 +0100 @@ -142,7 +142,7 @@ private: GJS_JSAPI_RETURN_CONVENTION bool resolve_impl(JSContext* cx, JS::HandleObject obj, JS::HandleId id, - const char* prop_name, bool* resolved); + bool* resolved); GJS_JSAPI_RETURN_CONVENTION bool new_enumerate_impl(JSContext* cx, JS::HandleObject obj, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/function.cpp new/gjs-1.66.2/gi/function.cpp --- old/gjs-1.66.1/gi/function.cpp 2020-10-09 00:26:17.385874000 +0200 +++ new/gjs-1.66.2/gi/function.cpp 2021-01-10 00:10:13.000189500 +0100 @@ -825,13 +825,9 @@ // Callback lifetimes will be attached to the instance object if it is // a GObject or GInterface - if (cache->contents.info) { - GType gtype = - g_registered_type_info_get_g_type(cache->contents.info); - if (g_type_is_a(gtype, G_TYPE_OBJECT) || - g_type_is_a(gtype, G_TYPE_INTERFACE)) - state.instance_object = obj; - } + if (g_type_is_a(cache->contents.object.gtype, G_TYPE_OBJECT) || + g_type_is_a(cache->contents.object.gtype, G_TYPE_INTERFACE)) + state.instance_object = obj; } unsigned processed_c_args = ffi_arg_pos; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/fundamental.cpp new/gjs-1.66.2/gi/fundamental.cpp --- old/gjs-1.66.1/gi/fundamental.cpp 2020-10-09 00:26:17.385874000 +0200 +++ new/gjs-1.66.2/gi/fundamental.cpp 2021-01-10 00:10:13.000189500 +0100 @@ -142,11 +142,18 @@ // See GIWrapperBase::resolve(). bool FundamentalPrototype::resolve_impl(JSContext* cx, JS::HandleObject obj, - JS::HandleId, const char* prop_name, - bool* resolved) { + JS::HandleId id, bool* resolved) { + JS::UniqueChars prop_name; + if (!gjs_get_string_id(cx, id, &prop_name)) + return false; + if (!prop_name) { + *resolved = false; + return true; // not resolved, but no error + } + /* We are the prototype, so look for methods and other class properties */ GjsAutoFunctionInfo method_info = - g_object_info_find_method(info(), prop_name); + g_object_info_find_method(info(), prop_name.get()); if (method_info) { #if GJS_VERBOSE_ENABLE_GI_USAGE @@ -176,7 +183,7 @@ *resolved = false; } - return resolve_interface(cx, obj, resolved, prop_name); + return resolve_interface(cx, obj, resolved, prop_name.get()); } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/fundamental.h new/gjs-1.66.2/gi/fundamental.h --- old/gjs-1.66.1/gi/fundamental.h 2020-10-09 00:26:17.385874000 +0200 +++ new/gjs-1.66.2/gi/fundamental.h 2021-01-10 00:10:13.000189500 +0100 @@ -128,7 +128,7 @@ GJS_JSAPI_RETURN_CONVENTION bool resolve_impl(JSContext* cx, JS::HandleObject obj, JS::HandleId id, - const char* prop_name, bool* resolved); + bool* resolved); // Public API public: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/interface.cpp new/gjs-1.66.2/gi/interface.cpp --- old/gjs-1.66.1/gi/interface.cpp 2020-10-09 00:26:17.386874200 +0200 +++ new/gjs-1.66.2/gi/interface.cpp 2021-01-10 00:10:13.001189500 +0100 @@ -51,8 +51,7 @@ // See GIWrapperBase::resolve(). bool InterfacePrototype::resolve_impl(JSContext* context, JS::HandleObject obj, - JS::HandleId, const char* name, - bool* resolved) { + JS::HandleId id, bool* resolved) { /* If we have no GIRepository information then this interface was defined * from within GJS. In that case, it has no properties that need to be * resolved from within C code, as interfaces cannot inherit. */ @@ -61,8 +60,16 @@ return true; } + JS::UniqueChars prop_name; + if (!gjs_get_string_id(context, id, &prop_name)) + return false; + if (!prop_name) { + *resolved = false; + return true; // not resolved, but no error + } + GjsAutoFunctionInfo method_info = - g_interface_info_find_method(m_info, name); + g_interface_info_find_method(m_info, prop_name.get()); if (method_info) { if (g_function_info_get_flags (method_info) & GI_FUNCTION_IS_METHOD) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/interface.h new/gjs-1.66.2/gi/interface.h --- old/gjs-1.66.1/gi/interface.h 2020-10-09 00:26:17.386874200 +0200 +++ new/gjs-1.66.2/gi/interface.h 2021-01-10 00:10:13.001189500 +0100 @@ -110,7 +110,7 @@ GJS_JSAPI_RETURN_CONVENTION bool resolve_impl(JSContext* cx, JS::HandleObject obj, JS::HandleId id, - const char* name, bool* resolved); + bool* resolved); // JS methods diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/object.cpp new/gjs-1.66.2/gi/object.cpp --- old/gjs-1.66.1/gi/object.cpp 2020-10-09 00:26:17.386874200 +0200 +++ new/gjs-1.66.2/gi/object.cpp 2021-01-10 00:10:13.003189600 +0100 @@ -770,14 +770,21 @@ } bool ObjectPrototype::resolve_impl(JSContext* context, JS::HandleObject obj, - JS::HandleId id, const char* name, - bool* resolved) { + JS::HandleId id, bool* resolved) { if (m_unresolvable_cache.has(id)) { *resolved = false; return true; } - if (!uncached_resolve(context, obj, id, name, resolved)) + JS::UniqueChars prop_name; + if (!gjs_get_string_id(context, id, &prop_name)) + return false; + if (!prop_name) { + *resolved = false; + return true; // not resolved, but no error + } + + if (!uncached_resolve(context, obj, id, prop_name.get(), resolved)) return false; if (!*resolved && !m_unresolvable_cache.putNew(id)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/object.h new/gjs-1.66.2/gi/object.h --- old/gjs-1.66.1/gi/object.h 2020-10-09 00:26:17.386874200 +0200 +++ new/gjs-1.66.2/gi/object.h 2021-01-10 00:10:13.003189600 +0100 @@ -293,7 +293,7 @@ private: GJS_JSAPI_RETURN_CONVENTION bool resolve_impl(JSContext* cx, JS::HandleObject obj, JS::HandleId id, - const char* prop_name, bool* resolved); + bool* resolved); GJS_JSAPI_RETURN_CONVENTION bool new_enumerate_impl(JSContext* cx, JS::HandleObject obj, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/union.cpp new/gjs-1.66.2/gi/union.cpp --- old/gjs-1.66.1/gi/union.cpp 2020-10-09 00:26:17.387874100 +0200 +++ new/gjs-1.66.2/gi/union.cpp 2021-01-10 00:10:13.004189500 +0100 @@ -61,11 +61,18 @@ // See GIWrapperBase::resolve(). bool UnionPrototype::resolve_impl(JSContext* context, JS::HandleObject obj, - JS::HandleId, const char* prop_name, - bool* resolved) { + JS::HandleId id, bool* resolved) { + JS::UniqueChars prop_name; + if (!gjs_get_string_id(context, id, &prop_name)) + return false; + if (!prop_name) { + *resolved = false; + return true; // not resolved, but no error + } + // Look for methods and other class properties GjsAutoFunctionInfo method_info = - g_union_info_find_method(info(), prop_name); + g_union_info_find_method(info(), prop_name.get()); if (method_info) { #if GJS_VERBOSE_ENABLE_GI_USAGE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/union.h new/gjs-1.66.2/gi/union.h --- old/gjs-1.66.1/gi/union.h 2020-10-09 00:26:17.387874100 +0200 +++ new/gjs-1.66.2/gi/union.h 2021-01-10 00:10:13.004189500 +0100 @@ -74,7 +74,7 @@ GJS_JSAPI_RETURN_CONVENTION bool resolve_impl(JSContext* cx, JS::HandleObject obj, JS::HandleId id, - const char* prop_name, bool* resolved); + bool* resolved); // Overrides GIWrapperPrototype::constructor_nargs(). [[nodiscard]] unsigned constructor_nargs(void) const { return 0; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/gi/wrapperutils.h new/gjs-1.66.2/gi/wrapperutils.h --- old/gjs-1.66.1/gi/wrapperutils.h 2020-10-09 00:26:17.387874100 +0200 +++ new/gjs-1.66.2/gi/wrapperutils.h 2021-01-10 00:10:13.004189500 +0100 @@ -436,18 +436,7 @@ return true; } - // A GObject-introspection lazy property will always be a string, so - // also bail out if trying to resolve an integer or symbol property. - JS::UniqueChars prop_name; - if (!gjs_get_string_id(cx, id, &prop_name)) - return false; - if (!prop_name) { - *resolved = false; - return true; // not resolved, but no error - } - - return priv->to_prototype()->resolve_impl(cx, obj, id, prop_name.get(), - resolved); + return priv->to_prototype()->resolve_impl(cx, obj, id, resolved); } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/installed-tests/js/testGObject.js new/gjs-1.66.2/installed-tests/js/testGObject.js --- old/gjs-1.66.1/installed-tests/js/testGObject.js 2020-10-09 00:26:17.394874000 +0200 +++ new/gjs-1.66.2/installed-tests/js/testGObject.js 2021-01-10 00:10:13.010189500 +0100 @@ -48,3 +48,14 @@ }); }); }); + +describe('GObject should', function () { + const types = ['gpointer', 'GBoxed', 'GParam', 'GInterface', 'GObject', 'GVariant']; + + types.forEach(type => { + it(`be able to create a GType object for ${type}`, function () { + const gtype = GObject.Type(type); + expect(gtype.name).toEqual(type); + }); + }); +}); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/meson.build new/gjs-1.66.2/meson.build --- old/gjs-1.66.1/meson.build 2020-10-09 00:26:17.396874200 +0200 +++ new/gjs-1.66.2/meson.build 2021-01-10 00:10:13.011189700 +0100 @@ -1,4 +1,4 @@ -project('gjs', 'cpp', 'c', version: '1.66.1', license: ['MIT', 'LGPL2+'], +project('gjs', 'cpp', 'c', version: '1.66.2', license: ['MIT', 'LGPL2+'], meson_version: '>= 0.52.0', default_options: ['cpp_std=c++17', 'c_std=c99', 'warning_level=2']) @@ -474,6 +474,10 @@ endif endif +if build_readline + libgjs_dependencies += readline_deps +endif + if build_profiler libgjs_dependencies += profiler_deps endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/modules/core/overrides/GObject.js new/gjs-1.66.2/modules/core/overrides/GObject.js --- old/gjs-1.66.1/modules/core/overrides/GObject.js 2020-10-09 00:26:17.397874000 +0200 +++ new/gjs-1.66.2/modules/core/overrides/GObject.js 2021-01-10 00:10:13.013189600 +0100 @@ -244,7 +244,7 @@ let gtype = GObject.type_from_name(gtypeName); obj[`TYPE_${upperName}`] = gtype; obj[name] = function (v) { - return new actual(v); + return actual(v); }; obj[name].$gtype = gtype; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/gjs-1.66.1/modules/core/overrides/Gtk.js new/gjs-1.66.2/modules/core/overrides/Gtk.js --- old/gjs-1.66.1/modules/core/overrides/Gtk.js 2020-10-09 00:26:17.397874000 +0200 +++ new/gjs-1.66.2/modules/core/overrides/Gtk.js 2021-01-10 00:10:13.013189600 +0100 @@ -45,10 +45,7 @@ Gtk.Widget.prototype._init = function (params) { if (this.constructor[Gtk.template]) { - if (BuilderScope) { - Gtk.Widget.set_template_scope.call(this.constructor, - new BuilderScope(this)); - } else { + if (!BuilderScope) { Gtk.Widget.set_connect_func.call(this.constructor, (builder, obj, signalName, handlerName, connectObj, flags) => { const swapped = flags & GObject.ConnectFlags.SWAPPED; @@ -110,6 +107,9 @@ } else { Gtk.Widget.set_template.call(klass, template); } + + if (BuilderScope) + Gtk.Widget.set_template_scope.call(klass, new BuilderScope()); } if (children) { @@ -136,15 +136,11 @@ BuilderScope = GObject.registerClass({ Implements: [Gtk.BuilderScope], }, class extends GObject.Object { - _init(thisArg) { - super._init(); - this._this = thisArg; - } - vfunc_create_closure(builder, handlerName, flags, connectObject) { const swapped = flags & Gtk.BuilderClosureFlags.SWAPPED; return _createClosure( - builder, this._this, handlerName, swapped, connectObject); + builder, builder.get_current_object(), + handlerName, swapped, connectObject); } }); }