DBusGMethodInvocation is null on i386, works on x86_64
Braden McDaniel
braden at endoframe.com
Fri Oct 24 10:08:03 PDT 2008
On Fri, 2008-10-24 at 12:27 +0100, Simon McVittie wrote:
> On Fri, 24 Oct 2008 at 02:56:16 -0400, Braden McDaniel wrote:
> > I'm observing a situation where the DBusGMethodInvocation pointer passed
> > to the implementation of a remote call is null on i386; but the same
> > code works as expected on x86_64.
> >
> > I have the following XML:
> >
> > <node name="/org/openvrml/BrowserFactory">
> > <interface name="org.openvrml.BrowserFactory">
> > <method name="CreateControl">
> > <annotation name="org.freedesktop.DBus.GLib.Async" value="true" />
> > <arg type="s" name="host_name" direction="in" />
> > <arg type="o" name="host_object_path" direction="in" />
> > <arg type="t" name="host_id" direction="in" />
>
> This is a 64-bit unsigned integer...
>
> > <arg type="b" name="expect_initial_stream" direction="in" />
> > <arg type="o" direction="out">
> > <annotation name="org.freedesktop.DBus.GLib.ReturnVal" value=""/>
> > </arg>
> > </method>
> > </interface>
> > </node>
>
> > gboolean
> > openvrml_xembed_browser_factory_create_control(
> > OpenvrmlXembedBrowserFactory * control_factory,
> > const char * host_name,
> > const char * host_obj_path,
> > guint host_id,
>
> but this is the same size as an int, so on platforms with 32-bit int, your
> arguments are misaligned.
Argh. Right you are. I changed the type from 32- to 64-bit everywhere
else but I've been looking right past that instance.
Thanks.
--
Braden McDaniel e-mail: <braden at endoframe.com>
<http://endoframe.com> Jabber: <braden at jabber.org>
More information about the dbus
mailing list