Crash processing g_object_new arguments
- From: Braden McDaniel <braden endoframe com>
- To: gtk-app-devel-list gnome org
- Subject: Crash processing g_object_new arguments
- Date: Mon, 09 Nov 2009 03:24:04 -0500
Does this backtrace suggest anything reasonably concrete to anyone here?
#0 strchr () at ../sysdeps/x86_64/strchr.S:33
#1 0x0000003834814e1d in IA__g_param_spec_pool_lookup (pool=0x6cc500, param_name=0x7fff00000000
<Address 0x7fff00000000 out of bounds>, owner_type=140737085709488, walk_ancestors=1) at gparam.c:1053
#2 0x00000038348122c7 in IA__g_object_new_valist (object_type=6785536,
first_property_name=0x7fff00000000 <Address 0x7fff00000000 out of bounds>, var_args=0x7fffefa53250) at
gobject.c:1287
#3 0x00000038348126ac in IA__g_object_new (object_type=140737085709488, first_property_name=0x459479
"control-host-proxy") at gobject.c:1060
#4 0x000000000044125b in openvrml_xembed_browser_new (host_proxy=0x7fffe8006870,
expect_initial_stream=0, dbus_thread_context=0x73ab40, gtk_thread_context=0x6ea5c0, host_name=0x7fffe8007800
"org.openvrml.BrowserHost-18834", socket_id=0) at .././../src/openvrml-xembed/browser.cpp:378
Clearly the "<Address ... out of bounds>" looks fishy; but I'm just not
seeing what could be a problem there; and I'm wondering if gdb isn't
just messing with me. The call site for openvrml_xembed_browser_new
looks like this:
OpenvrmlXembedBrowser * const browser =
OPENVRML_XEMBED_BROWSER(
g_object_new(OPENVRML_XEMBED_TYPE_BROWSER,
"control-host-proxy", host_proxy,
"control-host-name", host_name,
"dbus-thread-context", dbus_thread_context,
"expect-initial-stream", expect_initial_stream,
0));
This started happening when I added the construction parameter
"control-host-name"; so I've been looking intently at my _class_init to
see if I botched something in the parameter specs; but I'm just not
seeing anything. That code looks like this:
GParamSpec * pspec =
g_param_spec_object(
"control-host-proxy",
"BrowserHost proxy",
"DBusGProxy for a BrowserHost",
DBUS_TYPE_G_PROXY,
GParamFlags(G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
g_object_class_install_property(g_object_class,
control_host_proxy_id,
pspec);
pspec =
g_param_spec_string(
"control-host-name",
"BrowserHost name",
"Well-known (nonunique) name for a BrowserHost",
"",
GParamFlags(G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
g_object_class_install_property(g_object_class,
control_host_name_id,
pspec);
pspec =
g_param_spec_pointer(
"dbus-thread-context",
"D-Bus thread context",
"GMainContext for the D-Bus connection thread",
GParamFlags(G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE));
g_object_class_install_property(g_object_class,
dbus_thread_context_id,
pspec);
pspec =
g_param_spec_boolean(
"expect-initial-stream",
"expect an initial stream",
"The VrmlControl will be delivered an initial stream",
false,
GParamFlags(G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE));
g_object_class_install_property(g_object_class,
expect_initial_stream_id,
pspec);
Clues appreciated.
--
Braden McDaniel <braden endoframe com>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]