[rdnzl-devel] Re: Problem/crash with RDNZL under ECL

Edi Weitz edi at agharta.de
Tue Sep 26 21:29:44 UTC 2006


On Tue, 26 Sep 2006 16:33:50 +0200, "Goffioul Michael" <goffioul at imec.be> wrote:

> Can you trace whether your .NET objects referenced in LISP get
> collected or not? In the case of the apropos example, it appears
> that the KeyPressEventHandler object never got collected in the LISP
> world.

I tried with LW 5.0, the most recent version of RDNZL (0.10.6) and the
corresponding DLL (created with VS 2003).  If I run the apropos
example and then call (HCL:MARK-AND-SWEEP 3), the KeyPressEventHandler
is clearly collected on the Lisp side.

Methodology: I simply added a PRINT statement to
MAYBE-FREE-CONTAINER-POINTER, so I could see which objects are about
to be handed over to freeDotNetContainer.  Below is the list I got.

But wait - you're talking about ECL, right?  FLAG-FOR-FINALIZATION
isn't yet implemented for ECL, so you can't expect freeDotNetContainer
to be called in this case, can you?

#<RDNZL::CONTAINER System.Type #x1094540> 
#<RDNZL::CONTAINER System.Type #x1094500> 
#<RDNZL::CONTAINER System.Boolean #x10944C0> 
#<RDNZL::CONTAINER AproposGUI.AproposControl #x10944A0> 
#<RDNZL::CONTAINER System.Type #x10944D0> 
#<RDNZL::CONTAINER System.Type #x1094310> 
#<RDNZL::CONTAINER System.Boolean #x10942D0> 
#<RDNZL::CONTAINER System.Windows.Forms.Form #x10940E8> 
#<RDNZL::CONTAINER System.Type #x10942E0> 
#<RDNZL::CONTAINER System.Windows.Forms.DockStyle #x10940B8> 
#<RDNZL::CONTAINER System.Drawing.Size #x1094088> 
#<RDNZL::CONTAINER System.Windows.Forms.Label #x10940C8> 
#<RDNZL::CONTAINER System.Windows.Forms.TextBox #x1094008> 
#<RDNZL::CONTAINER System.Type #x1093F90> 
#<RDNZL::CONTAINER System.Type #x1093FC0> 
#<RDNZL::CONTAINER System.Boolean #x1093E80> 
#<RDNZL::CONTAINER System.Reflection.MethodInfo #x1093EC0> 
#<RDNZL::CONTAINER System.Type #x1093F60> 
#<RDNZL::CONTAINER System.Reflection.ParameterInfo[] #x1093DF0> 
#<RDNZL::CONTAINER System.Int32 #x1093E90> 
#<RDNZL::CONTAINER System.Reflection.ParameterInfo #x1093E30> 
#<RDNZL::CONTAINER System.Reflection.ParameterInfo #x1093D60> 
#<RDNZL::CONTAINER System.Type #x1093E00> 
#<RDNZL::CONTAINER System.Type #x1093DA0> 
#<RDNZL::CONTAINER System.Type #x1093F30> 
#<RDNZL::CONTAINER System.String #x1093D70> 
#<RDNZL::CONTAINER System.Type #x1093D50> 
#<RDNZL::CONTAINER System.Type[] #x1093CE0> 
#<RDNZL::CONTAINER System.String #x1093CA0> 
#<RDNZL::CONTAINER System.String #x1093CB0> 
#<RDNZL::CONTAINER System.String #x1092CE8> 
#<RDNZL::CONTAINER System.Type #x1093D20> 
#<RDNZL::CONTAINER System.Boolean #x10956F8> 
#<RDNZL::CONTAINER RDNZLPrivateAssembly._LispCallback_1 #x1094520> 
#<RDNZL::CONTAINER System.String #x1095718> 
#<RDNZL::CONTAINER System.String #x10954E8> 
#<RDNZL::CONTAINER System.Type #x10954D8> 
#<RDNZL::CONTAINER System.Boolean #x1095268> 
#<RDNZL::CONTAINER System.Type #x1095128> 
#<RDNZL::CONTAINER System.Reflection.MethodInfo #x1094E90> 
#<RDNZL::CONTAINER System.RuntimeMethodHandle #x1095258> 
#<RDNZL::CONTAINER System.IntPtr #x1094D50> 
#<RDNZL::CONTAINER System.Windows.Forms.KeyPressEventHandler #x1095488> 
#<RDNZL::CONTAINER System.Windows.Forms.Control+ControlCollection #x10953C8> 
#<RDNZL::CONTAINER System.Type #x1094E80> 
#<RDNZL::CONTAINER System.Object[] #x1095418> 
#<RDNZL::CONTAINER System.Int32 #x1095508> 
#<RDNZL::CONTAINER System.Object #x1095538> 
#<RDNZL::CONTAINER System.Windows.Forms.KeyPressEventArgs #x1095578> 
#<RDNZL::CONTAINER System.Char #x1094920> 
#<RDNZL::CONTAINER NULL #x1094910> 
#<RDNZL::CONTAINER System.Object[] #x1094970> 
#<RDNZL::CONTAINER System.Int32 #x10949B0> 
#<RDNZL::CONTAINER System.Object #x1095298> 
#<RDNZL::CONTAINER System.Windows.Forms.KeyPressEventArgs #x10952D8> 
#<RDNZL::CONTAINER System.Char #x1095318> 
#<RDNZL::CONTAINER NULL #x1095308> 
#<RDNZL::CONTAINER System.Object[] #x1095368> 
#<RDNZL::CONTAINER System.Int32 #x1095178> 
#<RDNZL::CONTAINER System.Object #x10951A8> 
#<RDNZL::CONTAINER System.Windows.Forms.KeyPressEventArgs #x10951E8> 
#<RDNZL::CONTAINER System.Char #x1095228> 
#<RDNZL::CONTAINER NULL #x1095218> 
#<RDNZL::CONTAINER System.Object[] #x1095048> 
#<RDNZL::CONTAINER System.Int32 #x1095088> 
#<RDNZL::CONTAINER System.Windows.Forms.TextBox #x10950B8> 
#<RDNZL::CONTAINER System.Windows.Forms.KeyPressEventArgs #x1094EB0> 
#<RDNZL::CONTAINER System.Char #x1094EF0> 
#<RDNZL::CONTAINER System.String #x1094F30> 
#<RDNZL::CONTAINER AproposGUI.AproposControl #x1094F60> 
#<RDNZL::CONTAINER System.Windows.Forms.TextBox #x1094D70> 
#<RDNZL::CONTAINER System.Int32 #x1094F90> 
#<RDNZL::CONTAINER System.Int32 #x1094DD0> 
#<RDNZL::CONTAINER System.String #x1094E00> 
#<RDNZL::CONTAINER System.String #x1094DC0> 
#<RDNZL::CONTAINER System.Int32 #x10955B8> 
#<RDNZL::CONTAINER NULL #x1094E50> 



More information about the rdnzl-devel mailing list