[Bug 26249] add GObject-Introspection bindings

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu Apr 22 17:25:30 CEST 2010


https://bugs.freedesktop.org/show_bug.cgi?id=26249

--- Comment #19 from Simon McVittie <simon.mcvittie at collabora.co.uk> 2010-04-22 08:25:30 PDT ---
Merge blockers
==============

In "Initial work on generating gobject-introspection":

> +       LD_LIBRARY_PATH=.libs$${LD_LIBRARY_PATH:+:$$LD_LIBRARY_PATH} \

If you invoke it using $(top_builddir)/libtool --mode=execute
$(INTROSPECTION_COMPILER) ... (like we do for valgrind in the regression
tests), you shouldn't need to set LD_LIBRARY_PATH by hand.

>   * tp_asv_set_boolean:

I think it's dangerous to bind these setters into other languages - they make
assumptions about the memory allocation model of the GHashTable that are not,
in general, true. (Also, we don't bind tp_asv_new, which is the only documented
way to create a suitable hash table :-)

> -               --pkg dbus-glib-1 \

Do we want to keep the dbus-glib-1 pkg-config package, even though we've
dropped the GObject-Introspection-level dependency? I think that would avoid
needing @DBUS_CFLAGS@?

> JS example that retrieves the statuses of valid accounts
> Connection Manager example
> Contact list example that makes a low-level D-Bus call

I don't think we should ship these at all, for now.

In future, examples that are exemplary should go in examples/client/ (or
perhaps in examples/client/js/), and non-automated tests should go in
tests/manual/ or something, to make it very obvious that unlike the rest of the
tests, they are not run automatically.

Not merge blockers
==================

In "Initial work on generating gobject-introspection":

> +       proxy.c _gen/proxy-introspectable.h \
> +       account.c account.h \
> +       account-manager.c account-manager.h \
> +       connection.c connection.h \
> +       connection-handles.c \
> +       connection-manager.c connection-manager.h \
> +       channel.c channel.h \
> +       handle.c handle.h \
> +       dbus-daemon.c dbus-daemon.h \
> +       interfaces.c interfaces.h \
> +       intset.c intset.h \
> +       dbus.c dbus.h \
> +       capabilities.c capabilities.h \
> +       contact.c contact.h \
> +       defs.h \
> +       debug.c debug.h \
> +       _gen/telepathy-enums.h \
> +       _gen/telepathy-interfaces.h

I'd still like a brief status report for each of those files: unchecked /
completely OK / only foo and bar checked / whatever.

It might help to look at the generated .gir and see if it looks sane.

>     * TpChannel::group-members-changed:

Why is this already re-annotated in the initial commit? Also, weren't you going
to (skip) it?

>    * TpChannel::group-members-changed-detailed:

Likewise, but without the (skip)ping.

> @@ -738,8 +738,8 @@ connection_got_contact_attributes (TpConnection *self,
>   * @user_data: arbitrary user-supplied data

Why is this already re-annotated in the initial commit? Also, user_data could
probably be annotated as (closure).

> Annotate TpProxy

Have you checked all of TpProxy's API? If not, "Annotate
tp_proxy_prepare_async" would seem a more appropriate commit message.

> Annotate TpChannel
>  342  * tp_channel_borrow_connection:

Shouldn't methods that duplicate a property be (skip)ped? I consider this
method to be a "C binding" :-)

> + * Returns: (transfer none): a borrowed reference to the #TpContact:connection

I think this is a "C binding" and so should be (skip)ped? In fact, most of the
TpContact stuff falls into that category.

> + * @contacts: (array length=n_contacts): An array of @n_contacts TpContact
> + *  objects (this callback is
>   *  not given a reference to any of these objects, and must call
>   *  g_object_ref() on any that it will keep), or %NULL on unrecoverable errors

Shouldn't this have an explicit (transfer none)? Likewise for requested_ids,
failed_id_errors?

> + * tp_get_bus_proxy: (skip)

All other deprecated functions should probably be (skip)ped, too.

I'd quite like to see a straight Javascript port of the existing client
examples (inspect-connection and friends) in examples/.

-- 
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.



More information about the telepathy-bugs mailing list