<div dir="ltr">I remember facing similar marshalling issues when writing my bindings. The thing is that the wire args do not always match the literal protocol args, especially when creating a new object iirc. If it might be of any help, you can always take a look at wayland-java-bindings on github to get an idea how it's done.<div><br></div><div>gl & hf</div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-02-10 18:56 GMT+01:00 Rémi Thébault <span dir="ltr"><<a href="mailto:remi.thebault@gmail.com" target="_blank">remi.thebault@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div><div><div>Hi<br><br></div>Thanks for your hints.<br><br></div>Here is what I get with WAYLAND_DEBUG=1:<br><br></div>from client:<br></div><div>[3998325.807]  -> wl_display@1.get_registry(new id wl_registry@2)<br></div><div>[3998325.834]  -> wl_display@1.sync(new id wl_callback@3)<br></div><span class=""><div>message too short, object (2), message error(ous)<br></div><div><br></div></span>from server:<br>[3998325.858] wl_display@1.get_registry(new id wl_registry@2)<br>[3998325.876]  -> wl_registry@2.global(1, "wl_compositor", 4)<br>[3998325.889]  -> wl_registry@2.global(2, "wl_subcompositor", 1)<br></div><div>.... (other wl_registry.global elided)<br></div><div>[3998326.102] wl_display@1.sync(new id wl_callback@3)<br>[3998326.109]  -> wl_callback@3.done(187)<br>[3998326.116]  -> wl_display@1.delete_id(3)<br>Unknown OSC escape code 777, text notify;Command completed;examples/hello/<wbr>wayland-d_hello <br><br></div><div>OSC warning comes from weston-terminal, probably not related.<br><br></div><div><div><div><div><div><div>and the output of wayland-tracker:<br><br>wayland-tracker: connecting to /run/user/1000/wayland-0<span class=""><br>message too short, object (2), message error(ous)<br></span>wayland-tracker: client closed socket<br>wayland-tracker: sigCHLD received<br>[0.062825s   ]  -> wl_display@1.sync(new id wl_callback@3)<br>[0.062825s   ]  -> wl_display@1.get_registry(new id wl_registry@2)<br>[0.062984s   ] <-  wl_display@1.delete_id(3)<br>[0.062984s   ] <-  wl_callback@3.done(6010)<br>[0.062984s   ] <-  wl_registry@2.global(17, "zxdg_importer_v1", 1)<br>...<br>[0.062984s   ] <-  wl_registry@2.global(4, "wl_output", 2)<br>[0.062984s   ] <-  wl_registry@2.global(3, "wl_shm", 1)<br>[0.062984s   ] <-  wl_registry@2.global(2, "wl_compositor", 3)<br>[0.062984s   ] <-  wl_registry@2.global(1, "wl_drm", 2)<br><br><br>It seems that the marshalling is correct, no?<span class="HOEnZb"><font color="#888888"><br><br></font></span></div><span class="HOEnZb"><font color="#888888"><div>Rémi<br></div></font></span></div></div></div></div></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">2017-02-10 9:14 GMT+01:00 Pekka Paalanen <span dir="ltr"><<a href="mailto:ppaalanen@gmail.com" target="_blank">ppaalanen@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_4806370959482678775HOEnZb"><div class="m_4806370959482678775h5">On Thu, 9 Feb 2017 08:07:37 +0100<br>
Rémi Thébault <<a href="mailto:remi.thebault@gmail.com" target="_blank">remi.thebault@gmail.com</a>> wrote:<br>
<br>
> 2017-02-09 7:56 GMT+01:00 Rémi Thébault <<a href="mailto:remi.thebault@gmail.com" target="_blank">remi.thebault@gmail.com</a>>:<br>
><br>
> > Hello,<br>
> ><br>
> > I've started to build new bindings to Wayland for the D programming<br>
> > language.<br>
> > Available at <a href="http://github.com/rtbo/wayland-d" rel="noreferrer" target="_blank">github.com/rtbo/wayland-d</a>. Only client protocol supported at<br>
> > the moment.<br>
> > I come over an issue when starting to test requests. I wrote a simple<br>
> > program using the bindings:<br>
> ><br>
> > Sorry, premature email shoot! So,<br>
> I come over an issue when starting to test requests. I wrote a simple<br>
> program using the bindings:<br>
>   - connect to display<br>
>   - get the registry<br>
>   - roundtrip<br>
><br>
> I suspect wrong marshalling of the request because during roundtrip, this<br>
> message is printed:<br>
><br>
> message too short, object (2), message error(ous)<br>
><br>
> 2 is the registry id, and "ous" is the signature of wl_display.error.<br>
> What can possibly go wrong here?<br>
><br>
> Some insights over the bindings:<br>
>   - I link to libwayland-client for the connection and marshalling code,<br>
> but not for the main protocol interfaces objects.<br>
>   - the D scanner create code for initialization of wl_interface instances<br>
> at program startup<br>
>   - wl_interfaces are wrapped in higher level WlInterface instances which<br>
> act as Factory objects.<br>
>   - each protocol interface translates into a wrapper over a wl_proxy<br>
> object, and requests translates to marshalling calls in libwayland-client.<br>
<br>
</div></div>Hi,<br>
<br>
a wild guess: wrong args to a marshalling call?<br>
Or opcode generated wrong?<br>
Maybe use WAYLAND_DEBUG=1 to see what's going on, and compare both<br>
server and client side protocol dumps.<br>
<br>
<br>
Thanks,<br>
pq<br>
</blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<br>
wayland-devel mailing list<br>
<a href="mailto:wayland-devel@lists.freedesktop.org">wayland-devel@lists.<wbr>freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/wayland-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/<wbr>mailman/listinfo/wayland-devel</a><br>
<br></blockquote></div><br></div>