summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJoe Shaw <joeshaw@novell.com>2005-03-09 04:36:15 +0000
committerJoe Shaw <joeshaw@novell.com>2005-03-09 04:36:15 +0000
commit2958e723fc996e2dd7edfdc6ac53dcdf48323549 (patch)
treec031fe0f0f40e868f18eb3e257667856c1d9f4fc /ChangeLog
parentd96c9e465abb291cb943a1b4ec3643de4b3f6423 (diff)
downloaddbus-2958e723fc996e2dd7edfdc6ac53dcdf48323549.tar.gz
2005-03-08 Joe Shaw <joeshaw@novell.com>
Fix a bunch of lifecycle and memory management problems in the mono bindings. * mono/Arguments.cs (Arguments): Implement IDisposable * mono/Bus.cs (Bus): Don't allow public instantiation. This is strictly a static class. * mono/Connection.cs: Move the DBusObjectPathVTable and associated delegates into this file. (Connection): Implement IDisposable. (Dispose): Disconnect the connection and set the raw connection pointer to IntPtr.Zero. (~Connection): Call Dispose(). (RegisterObjectPath): Added. Manages the registration of object paths so we can cleanly disconnect them at dispose/finalize time. (UnregisterObjectPath): Ditto. (set_RawConnection): Unregister all of the object paths when changing the underlying DBusConnection. Add them back onto the new connection, if any. * mono/Handler.cs: Don't implement IDisposable; it doesn't use any more unmanaged resources anymore, so it's not necessary. Move all the DBusObjectPathVTable stuff out of here. (Handler): Save references to our delegates so that they don't get finalized. Call Connection.RegisterObjectPath() instead of dbus_connection_register_object_path() directly. (Message_Called): Dispose the message after we're finished with it. * mono/Message.cs (Message): Implement IDisposable. (Dispose): Dispose the Arguments, and set the RawMessage to IntPtr.Zero. (SendWithReplyAndBlock): We own the ref to the reply that comes back from dbus_connection_send_with_reply_and_block() so add a comment about that and unref it after we've constructed a managed MethodReturn class around it. Fixes a big, big leak. * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose method. (BuildSignalHandler): After we've sent the Signal message, dispose of it. (BuildMethod): Dispose of the method call and reply messages after we've sent the message and extracted the data we want from the reply. * mono/Service.cs (UnregisterObject): Don't call handler.Dispose() anymore. (Service_FilterCalled): Dispose of the message after we're finished with it.
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog55
1 files changed, 54 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 91153314..844b73ca 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,58 @@
2005-03-08 Joe Shaw <joeshaw@novell.com>
-
+
+ Fix a bunch of lifecycle and memory management problems
+ in the mono bindings.
+
+ * mono/Arguments.cs (Arguments): Implement IDisposable
+
+ * mono/Bus.cs (Bus): Don't allow public instantiation. This is
+ strictly a static class.
+
+ * mono/Connection.cs: Move the DBusObjectPathVTable and associated
+ delegates into this file.
+ (Connection): Implement IDisposable.
+ (Dispose): Disconnect the connection and set the raw connection
+ pointer to IntPtr.Zero.
+ (~Connection): Call Dispose().
+ (RegisterObjectPath): Added. Manages the registration of object
+ paths so we can cleanly disconnect them at dispose/finalize time.
+ (UnregisterObjectPath): Ditto.
+ (set_RawConnection): Unregister all of the object paths when
+ changing the underlying DBusConnection. Add them back onto the
+ new connection, if any.
+
+ * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
+ more unmanaged resources anymore, so it's not necessary. Move all
+ the DBusObjectPathVTable stuff out of here.
+ (Handler): Save references to our delegates so that they don't get
+ finalized. Call Connection.RegisterObjectPath() instead of
+ dbus_connection_register_object_path() directly.
+ (Message_Called): Dispose the message after we're finished with
+ it.
+
+ * mono/Message.cs (Message): Implement IDisposable.
+ (Dispose): Dispose the Arguments, and set the RawMessage to
+ IntPtr.Zero.
+ (SendWithReplyAndBlock): We own the ref to the reply that comes
+ back from dbus_connection_send_with_reply_and_block() so add a
+ comment about that and unref it after we've constructed a managed
+ MethodReturn class around it. Fixes a big, big leak.
+
+ * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
+ method.
+ (BuildSignalHandler): After we've sent the Signal message, dispose
+ of it.
+ (BuildMethod): Dispose of the method call and reply messages after
+ we've sent the message and extracted the data we want from the
+ reply.
+
+ * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
+ anymore.
+ (Service_FilterCalled): Dispose of the message after we're
+ finished with it.
+
+2005-03-08 Joe Shaw <joeshaw@novell.com>
+
* dbus/dbus-connection.c (dbus_connection_send_with_reply):
After we attach our pending call to the connection, unref
it. Fixes a leak.