diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-06-21 16:19:21 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2011-08-11 11:51:43 +0100 |
commit | 213acdb71c9ba679b75bff95de25d126bb659465 (patch) | |
tree | 3872d7ac40f2778078853e028949fc9dfcc788ee | |
parent | 70fb675a108dbf660d384150429c9af085b0c48e (diff) | |
download | dbus-213acdb71c9ba679b75bff95de25d126bb659465.tar.gz |
Add _DBUS_STATIC_ASSERT (based on GLib's G_STATIC_ASSERT) and use it
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39636
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
-rw-r--r-- | dbus/dbus-errors.c | 2 | ||||
-rw-r--r-- | dbus/dbus-hash.c | 2 | ||||
-rw-r--r-- | dbus/dbus-internals.h | 6 | ||||
-rw-r--r-- | dbus/dbus-string-private.h | 2 |
4 files changed, 12 insertions, 0 deletions
diff --git a/dbus/dbus-errors.c b/dbus/dbus-errors.c index 5f27501c..db3305b9 100644 --- a/dbus/dbus-errors.c +++ b/dbus/dbus-errors.c @@ -78,6 +78,8 @@ typedef struct } DBusRealError; +_DBUS_STATIC_ASSERT (sizeof (DBusRealError) == sizeof (DBusError)); + /** * Returns a longer message describing an error name. * If the error name is unknown, returns the name diff --git a/dbus/dbus-hash.c b/dbus/dbus-hash.c index 67ef4ced..b104f32f 100644 --- a/dbus/dbus-hash.c +++ b/dbus/dbus-hash.c @@ -222,6 +222,8 @@ typedef struct int n_entries_on_init; /**< used to detect table resize since initialization */ } DBusRealHashIter; +_DBUS_STATIC_ASSERT (sizeof (DBusRealHashIter) == sizeof (DBusHashIter)); + static DBusHashEntry* find_direct_function (DBusHashTable *table, void *key, dbus_bool_t create_if_not_found, diff --git a/dbus/dbus-internals.h b/dbus/dbus-internals.h index dcef7d7f..06e6c16b 100644 --- a/dbus/dbus-internals.h +++ b/dbus/dbus-internals.h @@ -362,6 +362,12 @@ dbus_bool_t _dbus_read_uuid_file (const DBusString *filename, dbus_bool_t _dbus_get_local_machine_uuid_encoded (DBusString *uuid_str); +#define _DBUS_PASTE2(a, b) a ## b +#define _DBUS_PASTE(a, b) _DBUS_PASTE2 (a, b) +#define _DBUS_STATIC_ASSERT(expr) \ + typedef struct { char _assertion[(expr) ? 1 : -1]; } \ + _DBUS_PASTE (_DBUS_STATIC_ASSERT_, __LINE__) + DBUS_END_DECLS #endif /* DBUS_INTERNALS_H */ diff --git a/dbus/dbus-string-private.h b/dbus/dbus-string-private.h index 365d89a3..b17c2b9f 100644 --- a/dbus/dbus-string-private.h +++ b/dbus/dbus-string-private.h @@ -24,6 +24,7 @@ #ifndef DBUS_STRING_PRIVATE_H #define DBUS_STRING_PRIVATE_H +#include <dbus/dbus-internals.h> #include <dbus/dbus-memory.h> #include <dbus/dbus-types.h> @@ -51,6 +52,7 @@ typedef struct unsigned int align_offset : 3; /**< str - align_offset is the actual malloc block */ } DBusRealString; +_DBUS_STATIC_ASSERT (sizeof (DBusRealString) == sizeof (DBusString)); /** * @defgroup DBusStringInternals DBusString implementation details |