diff options
author | Rodrigo Moya <rodrigo.moya@collabora.co.uk> | 2012-05-31 13:34:16 +0200 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2012-05-31 13:34:16 +0200 |
commit | b2be05093cb9d2afa6348a05d35c3fab65e9fd52 (patch) | |
tree | 678d4efed550adcbc73c582301253ab50818e32c | |
parent | 09934fdcc74ccad9991a8c642edb8ece25b999ee (diff) | |
download | dbus-b2be05093cb9d2afa6348a05d35c3fab65e9fd52.tar.gz |
Allocate and store peer addresses in the hash table, not as pointers
-rw-r--r-- | dbus/dbus-transport-afbus.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/dbus/dbus-transport-afbus.c b/dbus/dbus-transport-afbus.c index 4832b391..3789a95a 100644 --- a/dbus/dbus-transport-afbus.c +++ b/dbus/dbus-transport-afbus.c @@ -93,7 +93,12 @@ get_write_destination (int fd, /* a message for a peer */ if (wkn_addresses_cache != NULL) - peer = (dbus_uint64_t) _dbus_hash_table_lookup_string (wkn_addresses_cache, destination); + { + dbus_uint64_t *peer_pointer; + + peer_pointer = (dbus_uint64_t *) _dbus_hash_table_lookup_string (wkn_addresses_cache, destination); + peer = *peer_pointer; + } sock->sbus_addr.s_addr = peer; @@ -229,13 +234,14 @@ afbus_message_received (DBusTransportSocket *socket_transport, { char *wkn; dbus_uint64_t peer; + dbus_uint64_t *peer_pointer; /* Update the cache */ if (wkn_addresses_cache == NULL) { wkn_addresses_cache = _dbus_hash_table_new (DBUS_HASH_STRING, dbus_free, - NULL); + dbus_free); if (wkn_addresses_cache == NULL) return; } @@ -244,9 +250,12 @@ afbus_message_received (DBusTransportSocket *socket_transport, DBUS_TYPE_STRING, &wkn, DBUS_TYPE_UINT64, &peer, DBUS_TYPE_INVALID); + + peer_pointer = dbus_new (dbus_uint64_t, 1); + *peer_pointer = peer; _dbus_hash_table_insert_string (wkn_addresses_cache, _dbus_strdup (wkn), - (void *) peer); + (void *) peer_pointer); } } } |