From 961e6ca41c1e9433055130569ce3492866e2126b Mon Sep 17 00:00:00 2001 From: Havoc Pennington Date: Sun, 20 Jun 2004 15:28:15 +0000 Subject: 2004-06-20 Havoc Pennington * dbus/dbus-glib-error-enum.h: autogenerate the GError enum codes from the dbus error names * glib/dbus-glib.h: move to subdir dbus/ since it's included as dbus/dbus-glib.h and that breakage is now visible due to including dbus/dbus-glib.h in dbus-glib-lowlevel.h * glib/dbus-glib.h: s/gproxy/g_proxy/ * dbus/dbus-shared.h: new header to hold stuff shared with binding APIs * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather than dbus-errors.h * glib/dbus-glib.h (dbus_set_g_error): move to dbus-glib-lowlevel.h * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch of stuff to enable this * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here * a bunch of other changes with the same basic "separate glib bindings from dbus.h" theme --- glib/dbus-gutils.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'glib/dbus-gutils.h') diff --git a/glib/dbus-gutils.h b/glib/dbus-gutils.h index 84041d04..bed2d295 100644 --- a/glib/dbus-gutils.h +++ b/glib/dbus-gutils.h @@ -35,6 +35,21 @@ char **_dbus_gutils_split_path (const char *path); const char *_dbus_gutils_type_to_string (int type); +/* These munge the pointer to enforce that a plain cast won't work, + * accessor functions must be used; i.e. to ensure the ABI + * reflects our encapsulation. + */ +#define _DBUS_POINTER_SHIFT(p) ((void*) (((char*)p) + sizeof (void*))) +#define _DBUS_POINTER_UNSHIFT(p) ((void*) (((char*)p) - sizeof (void*))) + +#define DBUS_CONNECTION_FROM_G_CONNECTION(x) ((DBusConnection*) _DBUS_POINTER_UNSHIFT(x)) +#define DBUS_MESSAGE_FROM_G_MESSAGE(x) ((DBusMessage*) _DBUS_POINTER_UNSHIFT(x)) +#define DBUS_PENDING_CALL_FROM_G_PENDING_CALL(x) ((DBusPendingCall*) _DBUS_POINTER_UNSHIFT(x)) + +#define DBUS_G_CONNECTION_FROM_CONNECTION(x) ((DBusGConnection*) _DBUS_POINTER_SHIFT(x)) +#define DBUS_G_MESSAGE_FROM_MESSAGE(x) ((DBusGMessage*) _DBUS_POINTER_SHIFT(x)) +#define DBUS_G_PENDING_CALL_FROM_PENDING_CALL(x) ((DBusGPendingCall*) _DBUS_POINTER_SHIFT(x)) + G_END_DECLS #endif /* DBUS_GLIB_UTILS_H */ -- cgit