I near the end of implementing something that I probably overengineered to begin with (UML tools can be dangerous in the wrong hands). I know I should go back and re-engineer it, but I'm close to done, and I really NEED to be done.
For reasons that will probably turn out to be frivolous, I have objects that work something like this:
DEFINE CLASS Dad AS Custom
oMyBoy= .NULL.
FUNCTION init
oMyBoy = createObject("Bobby")
oMyBoy.oMyDad = This
ENDFUNC
ENDDEFINE
DEFINE CLASS Bobby AS Custom
oMyDad = .NULL.
ENDDEFINE
oDad = createObject("Dad")
...which works fine for my nefarous purposes, however, it also has an ugly problem when you want to release oDad.
RELEASE oDad releases the reference oDad, but it leaves Dad and son floating around out there with no external reference...the oMyBoy.oMyDad Reference sustains it. I know its still out there, because stuff in destroy() doesnt run until I do a CLEAR ALL
I currently have a function that nulls the inside references (the actual construct is a tree), but having to call this before releasing the object is very bothersome to me. I would be embarrased to have somebody see it in my code.
I could live with putting my call to null the references in destroy(), but it appears destroy won't fire until all the references are cleared.
Does anybody know of a method I could stick my reference nuller in that fires when the external reference is released?
TIA
Russ