summaryrefslogtreecommitdiffstats
path: root/ChangeLog
Commit message (Collapse)AuthorAgeFilesLines
* 2006-02-24 John (J5) Palmieri <johnp@redhat.com>dbus-0.61John (J5) Palmieri2006-02-241-0/+8
| | | | | | | | * Released 0.61 2006-02-24 John (J5) Palmieri <johnp@redhat.com> * proxies.py: Fix the callchain
* 2006-02-24 John (J5) Palmieri <johnp@redhat.com>John (J5) Palmieri2006-02-241-0/+11
| | | | | | | | | | | * patch from Sjoerd Simons <sjoerd at debian.org>: * dbus/dbus-sysdeps-util.c (_dbus_group_info_free): Moved to dbus/dbus-sysdeps.c * dbus/dbus-userdb.c (_dbus_group_info_free_allocated): Don't call _dbus_group_info_free_allocated which causes infinite loop, correctly call _dbus_group_info_free
* Emacs is too smart for its own good. Revert its automatic changes.Thiago Macieira2006-02-201-5/+5
|
* 2006-02-20 Thiago Macieira <thiago.macieira@trolltech.com>Thiago Macieira2006-02-201-5/+22
| | | | | | | | | | | | | | | | | * qt/qdbusinterface_p.h: * qt/qdbusinterface.cpp: Use the standard org.freedesktop.DBus.Method.NoReply annotation for the "async" calls instead of creating one for us. * qt/qdbusconnection_p.h: * qt/qdbusintegrator.cpp: Remove debugging code. * qt/qdbusintegrator.cpp: * qt/qdbusmessage.cpp: * qt/qdbusmessage_p.h: * qt/qdbusmessage.h: Change the behaviour of automatic reply-sending: now a reply is always sent, unless the caller didn't request one or if the user slot has already sent one.
* 2006-02-16 Robert McQueen <robot101@debian.org>Robert McQueen2006-02-171-0/+9
| | | | | | | | | * configure.in: Patch from Debian packages by Sjoerd Simons <sjoerd@debian.org> to add --with-qt-moc and --with-qt3-moc arguments so it's possible to build both bindings in the same tree. * qt/Makefile.am: Fix truncated value so that make dist works.
* 2006-02-16 Robert McQueen <robot101@debian.org>Robert McQueen2006-02-161-0/+7
| | | | | | | * acinclude.m4, configure.in: Patch from Brad Hards <bradh@frogmouth.net> to avoid warnings from autoconf 1.9 by improving quoting, re-ordering a few checks, and a few other aesthetic tidy-ups.
* 2006-02-16 Robert McQueen <robot101@debian.org>Robert McQueen2006-02-161-0/+23
| | | | | | | | | | | | | | | | | | | | | | | * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Patch from Rob Taylor <rob.taylor@collabora.co.uk> to correct a bogus assertion that the next element to read from the iter is fixed in size. This is not the case when you are at the end of the iter, because the next element type is INVALID. * dbus/dbus-string.c (_dbus_string_init_const_len): Correct a a bogus assert which means that you may not initialise a 0-length string unless you provide a non-NULL pointer. This prevented you from marshalling messages containing zero-length arrays in some cases. * glib/dbus-gvalue.c (demarshal_collection_array): Another patch from Rob to correct bogus asserts when trying to demarshal an array and get_fixed_array got you 0 elements. Append nothing to the GArray in this case. * test/glib/test-dbus-glib.c: Add a test case for round-tripping an empty array via the glib bindings. Without all of the above patches, this new test fails.
* 2006-02-16 Robert McQueen <robot101@debian.org>Robert McQueen2006-02-151-0/+14
| | | | | | | | | | | | | | * glib/dbus-gmain.c: Make the previous commit compile. * python/_dbus.py, python/matchrules.py: Patch from Ole Andre Ravnaas <ole.andre.ravnaas@collabora.co.uk> to allow you to specify sender_keyword="foo", path_keyword="bar" when adding a signal listener, so that you can bind to signals generically but still do something useful in your callback. * python/dbus_bindings.pyx: Demarshal the byte type as unsigned chars so that they're not cast to chars and made negative. Thanks to Jakub Stachowski for reporting this and testing the fix.
* * remove line from ChangeLog which was an artifact of an update conflictJohn (J5) Palmieri2006-02-151-1/+0
|
* 2006-02-15 John (J5) Palmieri <johnp@redhat.com>John (J5) Palmieri2006-02-151-0/+14
| | | | | | | | | * dbus/dbus-glib.h: * glib/dbus-gmain.h: (dbus_g_connection_open): new method for openning a connection to an arbitrary address in the glib bindings * ChangeLog: checkin last entry which doesn't seem to be commited
* 2006-02-13 Robert McQueen <robot101@debian.org>Robert McQueen2006-02-131-0/+16
| | | | | | | | | | | | | | | | * glib/dbus-binding-tool-glib.c, glib/dbus-gmain.c, glib/dbus-gsignature.c, glib/dbus-gtype-specialized.c, glib/dbus-gtype-specialized.h, glib/dbus-gvalue-utils.c, glib/dbus-gvalue-utils.h, glib/dbus-gvalue.c: Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add a big missing piece of the glib bindings jigsaw puzzle. This modifies the existing specialised types to have N type parameters (rather than the current 1 or 2 for arrays and dictionaries respectively). You can then use this to get a glib type to represent any arbitrary D-Bus struct type using dbus_g_type_get_struct. The only implementation of these types is with GValueArrays as before, but it's now possible to store these in arrays, emit them in signals, etc.
* 2006-02-10 John (J5) Palmieri <johnp@redhat.com>John (J5) Palmieri2006-02-101-0/+6
| | | | | | * dbus/dbus-signature.c (dbus_signature_iter_recurse): Correctly deal with nested arrays (Bug #5823) Patch by Thiago Macieira <thiago.macieira at trolltech.com>
* 2006-02-10 John (J5) Palmieri <johnp@redhat.com>John (J5) Palmieri2006-02-101-0/+5
| | | | | * mono/doc/Makefile.am: Fix parallel make problem with mono-doc (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
* 2006-02-10 John (J5) Palmieri <johnp@redhat.com>John (J5) Palmieri2006-02-101-0/+6
| | | | | | * bus/connection.c (bus_connections_expect_reply): Make pending reply limit not common to all connections (Bug #5416) Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
* 2006-02-10 John (J5) Palmieri <johnp@redhat.com>John (J5) Palmieri2006-02-101-0/+4
| | | | * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
* 2006-02-10 John (J5) Palmieri <johnp@redhat.com>John (J5) Palmieri2006-02-101-1/+6
| | | | | * gcj/Makefile.am: point to correct jar command (Bug #4529) patch from Doug Goldstein <cardoe at gentoo.org>
* 2006-02-09 Joe Shaw <joeshaw@novell.comJoe Shaw2006-02-091-0/+5
| | | | | * mono/Arguments.cs: Fix a magic number in the mono bindings that doesn't work on 64 bit arches. Patch from Peter Johanson.
* 2006-01-27 Robert McQueen <robot101@debian.org>Robert McQueen2006-01-271-0/+7
| | | | | | | * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol when generating the client-side methods, instead of overloading CSymbol which broke everything horribly. My apologies.
* 2006-01-27 Robert McQueen <robot101@debian.org>Robert McQueen2006-01-271-0/+12
| | | | | | | | | | | | * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch by me and Rob Taylor to add a simple_free function to D-Bus map and collection types, which allows those types which can be freed with a GDestroyNotify (such as GHashTables and GArrays, but not GPtrArrays) to be stored as the values in hashtables. * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}: Patch by Rob Taylor to add nested dicts to the glib tests to check the above code works, and appears not to leak when called repeatedly.
* 2006-01-27 Robert McQueen <robot101@debian.org>Robert McQueen2006-01-271-0/+6
| | | | | | * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor to free a D-Bus allocated string with dbus_free () instead of g_free ().
* 2006-01-27 Iain Holmes <iain@openedhand.com>Robert McQueen2006-01-271-0/+5
| | | | | * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose method from being called multiple times.
* 2006-01-19 Robert McQueen <robot101@debian.org>Robert McQueen2006-01-191-0/+7
| | | | | | | * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor <rob.taylor@collabora.co.uk> to add support for generating bindings to arrays that are represented as GPtrArrays rather than GArrays (ie size-variable things, such as strings, objects, structs, etc).
* 2006-01-05 Robert McQueen <robot101@debian.org>Robert McQueen2006-01-051-0/+8
| | | | | | | | * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki <ricardo.kekki@movial.fi> to make it possible to inherit from DBusGProxy, by splitting the DBusGProxy struct into a public part and a private part, and moving the setting of the DBusGProxyManager into a connection property, allowing proper GObject construction.
* 2006-01-05 Robert McQueen <robot101@debian.org>Robert McQueen2006-01-051-0/+6
| | | | | | * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name annotations when generating glib client bindings.
* * dbus/dbus-shared.h: Call it shared constants instead of shared macrosJohn (J5) Palmieri2005-12-191-0/+6
| | | | * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
* - Add doxygen markup to quite warningsJohn (J5) Palmieri2005-12-191-0/+4
|
* * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})John (J5) Palmieri2005-12-191-0/+4
|
* Add documentation on glib client bindings and annotationsRoss Burton2005-12-191-0/+5
|
* * dbus/bus.c (dbus_bus_release_name): Add documentationJohn (J5) Palmieri2005-12-191-0/+4
|
* 2005-12-06 Robert McQueen <robot101@debian.org>Robert McQueen2005-12-061-0/+5
| | | | | * python/service.py: s/sucessful/successful/ so we're allocating to and reading from the same variable. Oops.
* * test/qt/Makefile.am: build from srcdirdbus-0.60John (J5) Palmieri2005-12-011-2/+13
| | | | | | | | | | * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE Note - this code is wrong and needs to be fixed by the Qt binding developers. The flags should be treated as bitfields and not enums. * qt/qtconnection.h: Change ProhibitReplace to AllowReplace * dbus/dbus-list.c (link_after): remove #ifdef DBUS_BUILD_TESTS
* * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after):John (J5) Palmieri2005-11-301-0/+9
| | | | remove #ifdef DBUS_BUILD_TESTS since we use these methods in production code
* * dbus/dbus-connection.c (dbus_connection_read_write): Add newJohn (J5) Palmieri2005-11-301-0/+10
| | | | | | | | | method for getting messages off the bus in the absence of a mainloop. This method is much like dbus_connection_read_write_dispatch except it does not dispatch the messages to a registered filter function. Instead it allows a developer to process messages by directly popping them off the bus.
* * bus/desktop-file.c (parse_key_value): Ignore locales allowingJohn (J5) Palmieri2005-11-301-0/+10
| | | | | | | | the parser to continue instead of returning error (bus_desktop_file_load): Do not free parser data when parse_section_start or parse_key_value fails because it was already freed by parser_free (patch from Carlos Garcia Campos <carlosgc at gnome.org>)
* * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,John (J5) Palmieri2005-11-301-0/+10
| | | | | | | | | | dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c test/test-segfault.c, test/test-utils.c, test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c: Various cleanup of dead code and compiler warnings (patch from Kjartan Maraas <kmaraas at gnome.org>)
* * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leakJohn (J5) Palmieri2005-11-301-0/+5
| | | | (patch from Carlos Garnacho Parro <carlosg at gnome.org>
* 2005-11-27 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-271-0/+10
| | | | | | | | | | * python/dbus_bindings.pyx: Repair my previous commit which reverted part of the preceding one. Oops. Merge patch by Johan Hedberg <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values on big-endian platforms. * test/python/test-client.py: Add some 16-bit integers to the test values.
* 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>Robert McQueen2005-11-271-0/+5
| | | | | * glib/dbus-gobject.c: Append a GValue instead of a basic type in method return message for property getters
* 2005-11-27 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-271-0/+11
| | | | | | | | | | | * python/dbus_bindings.pyx: Fix a bug where doing a strict append with type v of an instance of dbus.Variant(foo, type='x') caused it to be boxed twice before sending over the bus. * python/dbus_bindings.pyx, python/service.py, test/python/test-client.py: Update the constants for the new request_name flags, and update comments/test cases now that queueing is the default action.
* * configure.in:John (J5) Palmieri2005-11-221-0/+6
| | | | | - Change version to 0.60 for impending release - upped the sonames because of ABI and API breakage
* * configure.in: Add test/name-test/Makefile to the generatedJohn (J5) Palmieri2005-11-221-0/+103
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makefile list * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT): New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying not to queue an ower if it can't be the primary owner * bus/bus.h: Add new internal BusOwner struct * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default) to bus_registry_ensure and don't set the prohibit_replacement flag since they are now set per BusOwner and not per name. (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners) that returns the list of connections in a name's connection queue * bus/services.c (struct BusService): remove prohibit_replacement field (struct BusOwner): new struct for keeping track of queued connections and their associated flags for the queue (struct BusRegistry): add a BusOwner memory pool (bus_registry_new): initialize the BusOwner memory pool (bus_registry_unref): free the BusOwner memory pool (_bus_service_find_owner_link): new internal method for searching the queue for a specific connection (bus_owner_set_flags): new method for adding setting the flags on a bus owner (bus_owner_new): new method that creates a BusOwner object from the pool and sets its flags (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects (bus_registry_ensure): Add the flags parameter (bus_registry_acquire_service): Switch from using raw connections to using the BusOwner struct Add new state machine for dealing with the new set of flags (bus_registry_set_service_context_table, struct OwnershipCancelData, cancel_ownership, free_ownership_cancel_data, add_cancel_ownership_to_transaction, struct OwnershipRestoreData, restore_ownership, free_ownership_restore_data, add_restore_ownership_to_transaction): Switch to using BusOwner instead of raw connections (bus_service_add_owner): Add flags parameter Switch to using BusOwner instead of raw connections Add state machine for dealing with the new set of flags (bus_service_swap_owner): Swaps the first and second owners in the queue. Used to make sure proper signals are sent when a service looses or gains primary ownership. We never insert an owner at the top of the queue. Instead we insert it in the second position and then swap. (bus_service_remove_owner): Remove the owner from the queue sending out the NameLost and NameOwnerChanged signals if the we were the primary owner (bus_service_get_primary_owners_connection): New method that extracts the connection from the primary owner (bus_service_get_primary_owner): Returns the BusOwner instead of the connection (bus_service_get_allow_replacement): Changed from the old bus_service_get_prohibit_replacement method. Checks the flags of the primary owner and returns if it can be replaced or not (bus_service_set_prohibit_replacement): removed (bus_service_has_owner): returns TRUE if and owner with the specified connection exists in the queue * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper method that only compiles if tests are enabled. Allows us to get the unique name of a connection so we can check it against the queue when doing regression tests * bus/activation.c (bus_activation_send_pending_auto_activate), bus/dispatch.c (bus_dispatch), bus/driver.c (bus_driver_handle_get_service_owner, bus_driver_handle_get_connection_unix_user, bus_driver_handle_get_connection_unix_process_id, bus_driver_handle_get_connection_selinux_security_context), bus/signals.c (connection_is_primary_owner): use bus_service_get_primary_owners_connection instead of bus_service_get_primary_owner * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket, _dbus_listen_unix_socket): Calculate the length of the socket path and use that instead of using a fixed length which was causing socket names to contain many trailing Nul bytes. * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c (dbus_g_method_get_sender): New method for extracting the sender from a DBusGMethodInvocation (dbus_g_method_return_get_reply): changed name to dbus_g_method_get_reply (dbus_g_method_return_send_reply): changed name to dbus_g_method_send reply * doc/dbus-specification.xml: New docs that describe how the new queueing system works and talks about the changes to the how we specify socket names * glib/examples/example-service.c, glib/examples/example-signal-emitter.c, glib/examples/statemachine/statemachine-server.c: Changed the RequestName flags to the new system * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New regression test suite for testing various states of the new queueing system
* 2005-11-15 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-151-0/+12
| | | | | | | | | | | | * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob Taylor to add two methods, dbus_g_method_return_get_reply and dbus_g_method_return_send_reply, to allow you to get the reply message from a DBusGMethodInvocation, append arbitrary stuff to it, and send it. The GLib bindings can't marshal a return value of something like a(s) if the array is empty - ultimately they should be made to heed the signature of the out arguments as the Python bindings now can, but this is a workable interim solution which might have other applications.
* 2005-11-15 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-151-0/+23
| | | | | | | | | | | | | | | | | | | | | | | * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName method to org.freedesktop.DBus to release a bus name or give up waiting in the queue for it. * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a dbus_bus_release_name method to send the ReleaseName method calls. Add constants for the return values to dbus/dbus-shared.h. * doc/dbus-specification.xml: Document the new ReleaseName method in the specification. * python/dbus_bindings.pyx: Add a low-level python binding for the release name method. * python/exceptions.py, python/service.py: Make freeing BusName objects release the name. Add a NameExistsException, and fix a bug with creating UnknownMethodException. * test/python/test-client.py: Add tests for freeing BusName objects causing names to be released.
* 2005-11-15 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-141-0/+5
| | | | | * python/service.py: Include the traceback in the error reply when we send an exception over the bus. _BEST_ _PATCH_ _EVER_
* 2005-11-14 David Zeuthen <davidz@redhat.com>David Zeuthen2005-11-141-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Timo Hoenig <thoenig@suse.de>. * bus/bus.c: I've recently investigated why the automatic reload of configuration files does not work as expected. Currently, reloading configuration files does only work when running dbus-daemon with --nodaemon. If we are running as daemon we're hitting a dnotify bug once we fork the process. We're initializing the dnotify fds before calling fork(). Once the child process forked it does still have the fds (and they still show up in /proc/`pidof dbus-daemon`/fd/) but we're not getting SIGIO as changes are made to the configuration files. The attached patch moves the initialization of the dnotify fds to process_config_postinit(). This is safe for all current code paths and solves the dnotify disfunction. If we're running dbus-daemon as daemon the fds for dnotify are now being initialized after fork() for the child process. * configure.in: The current configure.in check for dnotify probes 'x$target_os' for being 'xlinux-gnu'. I've changed the check to match for 'xlinux', too. Additionally I have adapted the configure option's style to match with the others.
* 2005-11-14 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-141-0/+10
| | | | | | | | | | * python/decorators.py, python/service.py: Add a new argument to the dbus.service.method decorator called sender_keyword, which if set, specifies the name of an argument which will be provided the bus name of the method caller. * test/python/test-client.py, test/python/test-service.py: Add a method and test to check the sender_keyword functionality.
* * bus/driver.c (bus_driver_handle_reload_config): Make sure we send anJohn (J5) Palmieri2005-11-071-0/+9
| | | | | | | | empty reply so blocking calls don't block forever (Patch from Sjoerd Simons <sjoerd at luon.net>) * AUTHORS: Add Robert McQueen for his work on the Python Bindings and other parts of D-Bus
* 2005-11-07 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-071-0/+20
| | | | | | | | | | | | | | | | | | | | * python/decorators.py: Change emit_signal function to use the signature annotation of the signal when marhsalling the arguments from the service. Fix a bug where the code checking signature length against argument length referenced the wrong variable. * python/introspect_parser.py: Avoid adding the type signature of signal arguments to any methods which occur after them in the introspection data (!) by making the parser a little more careful about its current state. * python/service.py: Remove debug prints from last commit (again :D). * test/python/test-client.py, test/python/test-service.py: Add test signals with signature decorators to test the strict marshalling code gives errors at the right time. Could do with checking the signals actually get emitted too, given that the test does nothing with signals at the moment...
* 2005-11-07 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-071-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus instances to stop madness of creating new instances representing the same bus connection all the time, rendering any tracking of match rules and bus names quite meaningless. Caught a bug where the private argument to SessionBus() and friends was being passed in as use_default_mainloop by mistake. Still some problems with multiple dbus_binding.Connection instances representing the same low-level connection (eg when you use both SessionBus() and StarterBus() in same process), but it's a lot better now than it was. * python/dbus_bindings.pyx: Add constants with the return values for bus_request_name(). * python/service.py: Store bus name instances in a per-dbus.Bus cache and retrieve the same instances for the same name, so deletion can be done with refcounting. Also now throws some kind of error if you don't actually get the name you requested, unlike previously... * test/python/test-client.py: Add tests for instance caching of buses and bus name objects.
* 2005-11-04 Robert McQueen <robot101@debian.org>Robert McQueen2005-11-041-0/+23
| | | | | | | | | | | | | | | | | | | | | | | * python/dbus_bindings.pyx, test/python/test-client.py: Fix marshalling of boolean values. Add some booleans to the values in the test client. * python/decorators.py, python/service.py: Add an 'async_callbacks' argument to the dbus.service.method decorator, which allows you to name arguments to take two callback functions for replying with return values or an exception. * test/python/test-client.py, test/python/test-service.py: Add test case using asynchronous method reply functions, both return values and errors, and from within both the function itself and from a mainloop callback. * python/decorators.py, python/service.py: Perform checking that the number of method/signal arguments matches the number of types in the signature at class loading time, not when you first introspect the class. * python/service.py: Remove debug print left by the last commit.