This is driving me nuts. My ambition is to remove a stack from memory and 
therefore from the message path, prior to reloading a fresh (template) version 
of the same stack. I don't want two versions of the same stack in the machine 
at one time - and in fact LC makes this illegal. This seems a very simple idea 
but somehow I have messed it up. I need help.

After lots of experiments, I have made a very simple pair of stacks, as follows.

The first stack, 'Killer', is just a mainstack with one card and two buttons, 
one which loads the second stack ('DataStack') and one which destroys the data 
stack. The loading (opening) button works, and I can see the loaded stack in 
the IDE's Application Browser.

The script of the second button consists of just this:

on mouseUp
   if exists(stack "dataStack") then
      answer "deleting" && (the short name of stack "dataStack") & "; 
destroyStack is" && (the destroyStack of stack "dataStack") & "; cantDelete is" 
&& (the cantDelete of stack "dataStack")
      delete stack "dataStack" -- this is supposed to guarantee the removal 
from RAM
      answer "the existence of the stack is now" && (exists(stack "dataStack"))
   else
      answer "can't find the data stack"
   end if
end mouseUp

when I execute this, the first 'answer' reveals that the destroyStack is true 
and the cantDelete is false, but after the delete, the second answer confirms 
that stack still exists! I can also continue to access it from the IDE's App 
Browser. If I use 'close' instead of 'delete', I get the same result.

I also notice that an attempt to invoke the IDE's 'Close and Remove from 
Memory' menu doesn't work either - I get the warning dialog but the stack 
doesn't go away. This menu item works for me in other apps, even with this 
version of LC (5.5.4 on a Mac). I have no idea what new factor I have 
introduced. I have often restarted LC as part of this experiment, so it's not 
some bit of ragged code in the IDE.

I tried making my KIller stack into a standalone, and although the window of 
the data stack closes, its existence is still reported as 'true'. I tried using 
'close' instead of 'delete', but the behaviour seems the same.

Can anyone explain this? This is probably just a consequence of 'developer 
fatigue', but I can't see it.

TIA

Graham
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to