How to ensure that 'close stack' destroys the stack in RAM?

J. Landman Gay jacque at hyperactivesw.com
Mon Oct 17 00:06:36 EDT 2016


I don't have an answer for you, but the problem may be related to 
something I noticed when LC 7 was released. I have automated scripts 
that create and/or update a series of stacks. When changes are completed 
to each stack, the script does this:

save stack x
close stack x
delete stack x

Prior to LC 7, the stacks would be removed from memory. In LC 7 and up, 
the stack is closed and removed from RAM only if the stack was newly 
created during that particular run. If the stack already existed on disk 
and was opened and updated, it does what you describe -- it closes but 
remains in RAM. (It remains listed in the App Browser, and "there is a 
stack x" returns true.) The destroyStack property on all the stacks is 
always false, though that shouldn't matter because an explicit command 
to delete the stack should work regardless.

Since it isn't a big deal for my client we've been ignoring it. But 
maybe that will give you a lead on how to pinpoint the problem. I 
suspect a bug in there somewhere.


On 10/16/16 10:47 AM, Graham Samuel wrote:
> Using LC8.1.1 rc2, I’ve got a mainstack which I want to remove
> entirely from my project before replacing it with a template stack of
> the same name. The script to do this is in a library originating from
> another mainstack. For the target stack I have set the ‘cantDelete’
> to false, and the ‘destroyStack’ and ‘destroyWindow’ to true. If my
> script just says
>
> close stack “myStack”
>
> then the stack window closes, but I think the stack is still in RAM -
> at least an ‘exists’ test says so (it’s not clear from the dictionary
> if ‘exists’ is supposed to work on stacks), and indeed the template
> stack doesn’t replace the original. If I add another line
>
> delete stack “myStack”
>
> I get an error 370 (object: stack locked, or stack’s script is
> executing). But it’s not locked. I don’t even know how to lock a
> stack, unless it’s by setting its ‘cantDelete’ to true. There are no
> ‘closeStack’ handlers in the target stack.
>
> Attempts to turn this into a simple recipe have failed, but it’s a
> real problem. What I want to do (I know I’ve asked before) is to
> execute the same code as the IDE does for ‘close and remove from
> memory’.
>
> Any ideas welcome.
>
> Graham _______________________________________________ use-livecode
> mailing list use-livecode at lists.runrev.com Please visit this url to
> subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode
>


-- 
Jacqueline Landman Gay         |     jacque at hyperactivesw.com
HyperActive Software           |     http://www.hyperactivesw.com





More information about the use-livecode mailing list