Open
Description
Bug description
use gtk::prelude::*;
use gtk::glib;
mod imp {
use gtk::{subclass::prelude::*, CompositeTemplate};
use super::*;
#[derive(Debug, Default, CompositeTemplate)]
#[template(file = "window.ui")]
pub struct Window {}
#[glib::object_subclass]
impl ObjectSubclass for Window {
const NAME: &'static str = "Window";
type Type = super::Window;
type ParentType = gtk::ApplicationWindow;
fn class_init(klass: &mut Self::Class) {
Self::bind_template(klass);
Self::bind_template_callbacks(klass);
}
fn instance_init(obj: &glib::subclass::InitializingObject<Self>) {
obj.init_template();
}
}
impl ObjectImpl for Window {}
impl WidgetImpl for Window {}
impl WindowImpl for Window {}
impl ApplicationWindowImpl for Window {}
#[gtk::template_callbacks]
impl Window {
#[template_callback]
fn on_page_detached(&self) {}
}
}
glib::wrapper! {
pub struct Window(ObjectSubclass<imp::Window>)
@extends gtk::ApplicationWindow, gtk::Window;
}
fn build_ui(app: &adw::Application) {
let window: Window = glib::Object::new(&[("application", app)]).unwrap();
window.present();
// Trigger the crash automatically, but it also works when closing with the "X" button.
window.close();
}
fn main() {
let application = adw::Application::new(None, Default::default());
application.connect_activate(build_ui);
application.run();
}
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk" version="4.0"/>
<template class="Window" parent="GtkApplicationWindow">
<property name="child">
<object class="AdwTabView">
<signal name="page-detached" handler="on_page_detached" swapped="true"/>
<child>
<object class="GtkLabel">
<property name="label">Hello World</property>
</object>
</child>
</object>
</property>
</template>
</interface>
Backtrace
thread 'main' panicked at 'Internal error: Object destroyed before closure invalidated', /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/gtk4-0.4.6/src/builder_rust_scope.rs:119:68
stack backtrace:
0: 0x5587a7f8350c - std::backtrace_rs::backtrace::libunwind::trace::h09f7e4e089375279
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
1: 0x5587a7f8350c - std::backtrace_rs::backtrace::trace_unsynchronized::h1ec96f1c7087094e
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x5587a7f8350c - std::sys_common::backtrace::_print_fmt::h317b71fc9a5cf964
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:67:5
3: 0x5587a7f8350c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::he3555b48e7dfe7f0
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:46:22
4: 0x5587a7f9e1cc - core::fmt::write::h513b07ca38f4fb1b
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/fmt/mod.rs:1149:17
5: 0x5587a7f80de5 - std::io::Write::write_fmt::haf8c932b52111354
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/io/mod.rs:1697:15
6: 0x5587a7f84c60 - std::sys_common::backtrace::_print::h195c38364780a303
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:49:5
7: 0x5587a7f84c60 - std::sys_common::backtrace::print::hc09dfdea923b6730
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:36:9
8: 0x5587a7f84c60 - std::panicking::default_hook::{{closure}}::hb2e38ec0d91046a3
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:211:50
9: 0x5587a7f84815 - std::panicking::default_hook::h60284635b0ad54a8
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:228:9
10: 0x5587a7f85314 - std::panicking::rust_panic_with_hook::ha677a669fb275654
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:606:17
11: 0x5587a7f84df0 - std::panicking::begin_panic_handler::{{closure}}::h976246fb95d93c31
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:502:13
12: 0x5587a7f839b4 - std::sys_common::backtrace::__rust_end_short_backtrace::h38077ee5b7b9f99a
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:139:18
13: 0x5587a7f84d59 - rust_begin_unwind
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:498:5
14: 0x5587a7f1cc51 - core::panicking::panic_fmt::h35f3a62252ba0fd2
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panicking.rs:107:14
15: 0x5587a7f9d2f1 - core::panicking::panic_display::h571c717fc6a00c7d
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/panicking.rs:63:5
16: 0x5587a7f1cb4b - core::option::expect_failed::h5f4cab7748df5501
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/option.rs:1637:5
17: 0x5587a7f3700e - core::option::Option<T>::expect::h7d3b738a5df149fd
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/option.rs:709:21
18: 0x5587a7f3180a - <gtk4::builder_rust_scope::imp::BuilderRustScope as gtk4::subclass::builder_scope::BuilderScopeImpl>::create_closure::{{closure}}::{{closure}}::h819e513fb4a7712a
at /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/gtk4-0.4.6/src/builder_rust_scope.rs:119:46
19: 0x5587a7f3d5da - glib::closure::Closure::new_local::{{closure}}::h06d2178a406365bb
at /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.15.5/src/closure.rs:203:49
20: 0x5587a7f3c7b9 - glib::closure::Closure::new_unsafe::marshal::hbe57f41f661a52c7
at /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.15.5/src/closure.rs:228:26
21: 0x7fc68e0c5c7f - g_closure_invoke
22: 0x7fc68e0e2126 - <unknown>
23: 0x7fc68e0e39ea - g_signal_emit_valist
24: 0x7fc68e0e3c03 - g_signal_emit
25: 0x7fc68ecabd66 - detach_page
at /var/home/yalter/source/c/libadwaita/build/../src/adw-tab-view.c:927:3
26: 0x7fc68ecabf17 - adw_tab_view_dispose
at /var/home/yalter/source/c/libadwaita/build/../src/adw-tab-view.c:1303:5
27: 0x7fc68e0d2bc4 - g_object_unref
28: 0x7fc68e793fd8 - gtk_window_dispose
at /usr/src/debug/gtk4-4.4.1-1.2.fc35.x86_64/redhat-linux-build/../gtk/gtkwindow.c:2589:3
29: 0x7fc68e57d624 - gtk_application_window_dispose
at /usr/src/debug/gtk4-4.4.1-1.2.fc35.x86_64/redhat-linux-build/../gtk/gtkapplicationwindow.c:622:3
30: 0x5587a7f2d54b - glib::subclass::object::dispose::ha003129df45b389f
at /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.15.5/src/subclass/object.rs:132:9
31: 0x7fc68e0d2bc4 - g_object_unref
32: 0x5587a7f64c02 - <glib::object::ObjectRef as core::ops::drop::Drop>::drop::hd30d84ca206a7475
at /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.15.5/src/object.rs:316:13
33: 0x5587a7f6864b - core::ptr::drop_in_place<glib::object::ObjectRef>::haa9b3f6fbccbf457
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ptr/mod.rs:188:1
34: 0x5587a7f2925b - core::ptr::drop_in_place<gtk_test::Window>::he6054d2d2e97e881
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ptr/mod.rs:188:1
35: 0x5587a7f28bf3 - gtk_test::build_ui::hedffa4e08a85f58d
at /var/home/yalter/source/rs/gtk-test/src/main.rs:54:1
36: 0x5587a7f28fa8 - core::ops::function::Fn::call::ha017e1fb0e3c19e7
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ops/function.rs:70:5
37: 0x5587a7f2a50b - <O as gio::auto::application::ApplicationExt>::connect_activate::activate_trampoline::h13d3093e29ca1eb1
at /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/gio-0.15.5/src/auto/application.rs:604:13
38: 0x7fc68e0c5c7f - g_closure_invoke
39: 0x7fc68e0e2126 - <unknown>
40: 0x7fc68e0e39ea - g_signal_emit_valist
41: 0x7fc68e0e3c03 - g_signal_emit
42: 0x7fc68e1ed188 - <unknown>
43: 0x7fc68e1ed366 - g_application_run
44: 0x5587a7f217e7 - <O as gio::application::ApplicationExtManual>::run_with_args::hbae41ede72273d06
at /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/gio-0.15.5/src/application.rs:30:13
45: 0x5587a7f218d6 - <O as gio::application::ApplicationExtManual>::run::hce6e51ead2145b74
at /var/home/yalter/.cargo/registry/src/github.com-1ecc6299db9ec823/gio-0.15.5/src/application.rs:23:9
46: 0x5587a7f28c56 - gtk_test::main::h1ea5dfa7f8a2fd32
at /var/home/yalter/source/rs/gtk-test/src/main.rs:61:5
47: 0x5587a7f2908b - core::ops::function::FnOnce::call_once::hc7a7efbe98df54ba
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ops/function.rs:227:5
48: 0x5587a7f24e3e - std::sys_common::backtrace::__rust_begin_short_backtrace::hfde91ef9ddb5c976
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/sys_common/backtrace.rs:123:18
49: 0x5587a7f28af1 - std::rt::lang_start::{{closure}}::h6d6d867f85833df7
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/rt.rs:145:18
50: 0x5587a7f8319b - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h7e688d7cdfeb7e00
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/core/src/ops/function.rs:259:13
51: 0x5587a7f8319b - std::panicking::try::do_call::h4be824d2350b44c9
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:406:40
52: 0x5587a7f8319b - std::panicking::try::h0a6fc7affbe5088d
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:370:19
53: 0x5587a7f8319b - std::panic::catch_unwind::h22c320f732ec805e
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panic.rs:133:14
54: 0x5587a7f8319b - std::rt::lang_start_internal::{{closure}}::hd38309c108fe679d
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/rt.rs:128:48
55: 0x5587a7f8319b - std::panicking::try::do_call::h8fcaf501f097a28e
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:406:40
56: 0x5587a7f8319b - std::panicking::try::h20e906825f98acc1
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panicking.rs:370:19
57: 0x5587a7f8319b - std::panic::catch_unwind::h8c5234dc632124ef
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/panic.rs:133:14
58: 0x5587a7f8319b - std::rt::lang_start_internal::hc4dd8cd3ec4518c2
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/rt.rs:128:20
59: 0x5587a7f28ac0 - std::rt::lang_start::h8d66edbaf8b3c3b9
at /rustc/db9d1b20bba1968c1ec1fc49616d4742c1725b4b/library/std/src/rt.rs:144:17
60: 0x5587a7f28e8c - main
61: 0x7fc68dd7d560 - __libc_start_call_main
62: 0x7fc68dd7d60c - __libc_start_main_alias_1
63: 0x5587a7f1d375 - _start
64: 0x0 - <unknown>