diff options
author | Havoc Pennington <hp@redhat.com> | 2004-11-27 07:30:22 +0000 |
---|---|---|
committer | Havoc Pennington <hp@redhat.com> | 2004-11-27 07:30:22 +0000 |
commit | b60c835d346b7e214e627abd8e0cdf06932313a7 (patch) | |
tree | c008f48c0c02ac878a4ff1400ee625805f496e16 /dbus/dbus-message.c | |
parent | 65090abbb9582d25a795f1dd835ea03973be75e7 (diff) |
2004-11-27 Havoc Pennington <hp@redhat.com>
* dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
are disabled
(_dbus_string_get_const_data): inline when asserts are disabled
* dbus/dbus-message.c: record the _dbus_current_generation of
creation so we can complain if dbus_shutdown() is used improperly.
Do this only if checks are enabled.
* dbus/dbus-connection.c: ditto
Diffstat (limited to 'dbus/dbus-message.c')
-rw-r--r-- | dbus/dbus-message.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/dbus/dbus-message.c b/dbus/dbus-message.c index a76d3b55..df1c789a 100644 --- a/dbus/dbus-message.c +++ b/dbus/dbus-message.c @@ -104,6 +104,10 @@ struct DBusMessage dbus_uint32_t changed_stamp; /**< Incremented when iterators are invalidated. */ DBusDataSlotList slot_list; /**< Data stored by allocated integer ID */ + +#ifndef DBUS_DISABLE_CHECKS + int generation; /**< _dbus_current_generation when message was created */ +#endif }; enum { @@ -248,6 +252,9 @@ get_string_field (DBusMessage *message, int offset; const char *data; + _dbus_return_val_if_fail (message->generation == _dbus_current_generation, + NULL); + offset = message->header_fields[field].value_offset; _dbus_assert (field <= DBUS_HEADER_FIELD_LAST); @@ -1607,6 +1614,9 @@ dbus_message_new_empty_header (void) message = dbus_new (DBusMessage, 1); if (message == NULL) return NULL; +#ifndef DBUS_DISABLE_CHECKS + message->generation = _dbus_current_generation; +#endif } message->refcount.value = 1; @@ -1947,6 +1957,9 @@ dbus_message_copy (const DBusMessage *message) retval->reply_serial = message->reply_serial; retval->header_padding = message->header_padding; retval->locked = FALSE; +#ifndef DBUS_DISABLE_CHECKS + retval->generation = message->generation; +#endif if (!_dbus_string_init_preallocated (&retval->header, _dbus_string_get_length (&message->header))) @@ -2000,6 +2013,7 @@ dbus_message_ref (DBusMessage *message) dbus_int32_t old_refcount; _dbus_return_val_if_fail (message != NULL, NULL); + _dbus_return_val_if_fail (message->generation == _dbus_current_generation, NULL); old_refcount = _dbus_atomic_inc (&message->refcount); _dbus_assert (old_refcount >= 1); @@ -2019,6 +2033,7 @@ dbus_message_unref (DBusMessage *message) dbus_int32_t old_refcount; _dbus_return_if_fail (message != NULL); + _dbus_return_if_fail (message->generation == _dbus_current_generation); old_refcount = _dbus_atomic_dec (&message->refcount); |