From 8c6b0ab3f7e437362112eeaf83a566475b85d27c Mon Sep 17 00:00:00 2001 From: Ryan Lortie Date: Thu, 20 Sep 2007 00:13:35 -0400 Subject: Add support for compacting DBusStrings to release wasted memory. 2007-09-19 Ryan Lortie * dbus/dbus-string.[ch] (compact, _dbus_string_compact, _dbus_string_lock): new compact function to free up allocated memory that is no longer used. * dbus/dbus-message.c (load_message): call _dbus_string_compact on the message loader buffer. * dbus/dbus-transport-socket.c (do_reading, do_writing): call _dbus_string_compact on the incoming/outgoing "encoded" buffers. * dbus/dbus-string-util.c (_dbus_string_test): add a few tests for string compacting. --- dbus/dbus-transport-socket.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'dbus/dbus-transport-socket.c') diff --git a/dbus/dbus-transport-socket.c b/dbus/dbus-transport-socket.c index a31c1597..f6d0e9c2 100644 --- a/dbus/dbus-transport-socket.c +++ b/dbus/dbus-transport-socket.c @@ -642,6 +642,7 @@ do_writing (DBusTransport *transport) { socket_transport->message_bytes_written = 0; _dbus_string_set_length (&socket_transport->encoded_outgoing, 0); + _dbus_string_compact (&socket_transport->encoded_outgoing, 2048); _dbus_connection_message_sent (transport->connection, message); @@ -733,6 +734,7 @@ do_reading (DBusTransport *transport) _dbus_string_get_length (buffer) - orig_len); _dbus_string_set_length (&socket_transport->encoded_incoming, 0); + _dbus_string_compact (&socket_transport->encoded_incoming, 2048); } } else -- cgit