Ok, found the problem. Seems there's an additional step to bind the glue
correctly.
I couldn't find any documentation on this. Aside from the
GTKEmbedGlueStartup() call, you also need to call
GTKEmbedGlueStartupInternal().
On 07/12/09 15:27, Glen Gray wrote:
Hey Guys,
Running into a runtime issue with GtkMozEmbed. When I call
gtk_moz_embed_get_nsIWebBrowser, I'm getting a segfault with a stack
trace that's pointing to NULL.
(gdb) bt
#0 0x00000000 in ?? ()
#1 0x0807b91f in mozilla_purge_history (embed=0x80d5810 [GtkMozEmbed],
full_purge=1) at mozilla.c:292
#2 0x08066e9d in moz_embed_uri_open (moz_embed=0x80d5810
[GtkMozEmbed], uri=
0x87522d0 "http://localhost/main_menu.php") at moz_embed.c:336
290 if (embed != NULL && GTK_IS_MOZ_EMBED (embed)) {
291 gtk_moz_embed_get_nsIWebBrowser (GTK_MOZ_EMBED(embed),
292 &browser);
293 //getter_AddRefs(browser));
294 }
I've tried with getter_AddRefs based on browser being declared as
nsCOMPtr<nsIWebBrowser> browser;
And above with browser declared as
nsIWebBrowser *browser;
Behaves the same way in both instances. This would seem to be a
runtime issue. I'm using XPCOM_GLUE and attempted to follow the
standalone glue model.
Does anyone have any tips. I can't see what could be wrong. I've
verified that the 'embed' parameter is valid and is a GtkMozEmbed
object. I can follow the stack through some of the marshalling code
with GDB.
If I step into the call to gtk_moz_emed_get_nsIWebBrowser, I can see
it going into
GType gtk_moz_embed_get_type(void). The static GType varaible in there
is not 0, so it steps down to the return part of the function.
Stepping on the return call takes me to
GTypeInstance* g_type_check_instance_cast (GTypeInstance
*type_instance, GType iface_type).
In there I can see that type_instance is GtkMozEmbed
(gdb) print type_instance
$1 = 0x80d5810 [GtkMozEmbed]
In the gtype.c code it performs a few checks and then if check
variable is TRUE, it returns type_instance. This the point where it
fails and I get a segfault in 0x0000000
This to me points to some sort of runtime late binding issue.
--
Glen Gray<[email protected]>
http://slaine.org
_______________________________________________
dev-embedding mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-embedding