CLEAR o = CREATEOBJECT('Collection') o2 = CREATEOBJECT('_Form') o.Add(o2,'First') o.Add(o2,'Second') o2 = Null ? "Before:", o.Count && 2 o.Item(1).Release() ? "After:", o.Count && 0 ? "CLEAR ALL" CLEAR ALL RETURN *------------------------- DEFINE CLASS _Form AS Form PROCEDURE Init AS VOID ? PROGRAM(), TIME() ENDPROC PROCEDURE Destroy AS VOID ? PROGRAM(), TIME() ENDPROC ENDDEFINE>Hi all,
>DEFINE CLASS _Form AS Form > PROTECTED PROCEDURE Init AS VOID > PUBLIC gbIamHere > DODEFAULT() > ENDPROC > PROTECTED PROCEDURE Destroy AS VOID > Release gbIamHere > DODEFAULT() > ENDPROC >ENDDEFINE > >Now do this : > >o = CREATEOBJECT('Collection') >o2 = CREATEOBJECT('_Form') >SET STEP ON * now we see the gbIamHere var in debug-window >o.Add(o2,'First') >o.Add(o2,'Second') > >o2.Release()>SET STEP ON * -> o2 = .NULL.;o.Count = 0 this should be so, BUT gbIamHere is still visible -> Destroy has not fired -> internal dangling object-reference