f2dcd84bb2
The problem is in the C++ D-Bus binding. If the method that gets bound to D-Bus returns a value, that value is ignored in the signature: int foo() => no out parameter It works when the method is declared as having a retval: void foo (int &result) => integer out parameter This problem exists for both the libdbus and the GIO D-Bus bindings. In SyncEvolution it affects methods like GetVersions(). The fix consists of always returning a type for the R return type in the libdbus bindings. getReturn() returned "" because the type was not a retval. In the GIO binding, the R type was not handled at all. Also move some common code into a helper function. |
||
---|---|---|
.. | ||
test | ||
debug.c | ||
debug.h | ||
gdbus-cxx-bridge.cpp | ||
gdbus-cxx-bridge.h | ||
gdbus-cxx.h | ||
gdbus.am | ||
gdbus.h | ||
mainloop.c | ||
object.c | ||
README | ||
watch.c |
This is a copy of the libgdbus source code: http://git.kernel.org/?p=bluetooth/libgdbus.git;a=summary It is licensed under LGPL v2.1, see upstream COPYING. The source is included here because there is no stable upstream release. Patches added here need to be submitted upstream. Likewise, patches applied upstream must be imported. The build/import-gdbus.sh and build/export-gdbus.sh scripts automate that process. To import fixes from upstream: - checkout out libgdbus and syncevolution - enter syncevolution directory - if not done before, create local "gdbus" branch: git branch gdbus origin/gdbus - run build/import-gdbus.sh - "gdbus" branch is now checked out and updated - verify changes, merge into master, etc. - push into remote syncevolution repo To export fixes to upstream: - check out relevant branch in syncevolution which has our local changes (typically "master") - run build/export-gdbus.sh - send 0*.patch files to upstream Caveats: - only files explicitly mentioned in the two scripts are imported/exports - Makefile changes are only imported, but not exported (local changes not relevant upstream)