diff options
author | Joe Shaw <joeshaw@novell.com> | 2005-03-13 02:05:56 +0000 |
---|---|---|
committer | Joe Shaw <joeshaw@novell.com> | 2005-03-13 02:05:56 +0000 |
commit | d0faf63728494d0f3d0cb8ee9fc5d40982d35640 (patch) | |
tree | 40178976dbe1acbd118ff738dea83ae1710ab837 | |
parent | 3fb7f1b35bb450e52ffc3ecdc26d1f9556ef2b73 (diff) | |
download | dbus-d0faf63728494d0f3d0cb8ee9fc5d40982d35640.tar.gz |
2005-03-12 Joe Shaw <joeshaw@novell.com>
* mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
onto the eval stack when removing the delegate.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | mono/ProxyBuilder.cs | 1 |
2 files changed, 6 insertions, 0 deletions
@@ -1,5 +1,10 @@ 2005-03-12 Joe Shaw <joeshaw@novell.com> + * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0 + onto the eval stack when removing the delegate. + +2005-03-12 Joe Shaw <joeshaw@novell.com> + * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy classes that disconnects the signal handler delegate from the service object. Fixes a big leak of proxy objects on the diff --git a/mono/ProxyBuilder.cs b/mono/ProxyBuilder.cs index 737a82af..8308823d 100644 --- a/mono/ProxyBuilder.cs +++ b/mono/ProxyBuilder.cs @@ -478,6 +478,7 @@ namespace DBus ILGenerator generator = mb.GetILGenerator(); //generator.EmitWriteLine("this.service.SignalCalled -= this.delegate_created"); + generator.Emit (OpCodes.Ldarg_0); generator.Emit (OpCodes.Ldfld, fi); generator.Emit (OpCodes.Call, Service_RemoveSignalCalledMI); generator.Emit (OpCodes.Ret); |