crash when going between stacks

Nicolas Cueto niconiko at
Tue Jun 22 18:37:34 CDT 2010

Dear List,

One of my more complex Rev creations is crashing.

To outline the complex, there are:

- a standalone
- a central stack for game-stack selection
- a myriad of game-stacks, some of them having substacks

Crashes happen when a game-stack closes to return to the central
game-selection stack. For one game-stack in particular (call it
BAD-GAMESTACK), crashes happen almost always, and for the other
game-stacks, only occasionally.

I double checked that every stack, substack, and card has a
preopen/open/close handler, even if this is empty.

I think it may be a memory issue, cause the game-stack that almost
always crashes has 100 URL-referenced image objects and runs on older
Win machines. BUT, I'm no longer sure since crashes with this
particular game-stack happen occasionally too on my uptodate,
memory-laden development computer.

Below is an outline of the scripted inter-relation between stacks. If
patient members would have a look and figure out what's wrong, I'd be
very grateful -- and happy to resolve a problem that's been bugging me
for months.

Thank you.


Nicolas Cueto

------  S T A R T    O F     S C R I P T S   -----

/*  In the card script of STANDALONE stack,
   this handler sets stackFiles and then goes to
  stack CENTRALSTACK. */

on setUpTheFoundation
    start using stack "STANDALONE "
    put "GAMESTACK1,gamestack1.rev" & cr & "GAMESTACK2,gamestack2.rev"
& cr & ... \
        & "animationEngine,animationEngine.rev"       into      tStackFiles
    set the stackFiles of stack "niconiko" to tStackFiles
    ## Set the globals used by all stacks
    open stack "CENTRAL"
    hide stack "STANDALONE"
end setUpTheFoundation

/* In stack script of CENTRALSTACK. */

on closestack
end closestack

/* In a go-to-gamestack button script on

on mouseUp
   open stack GAMESTACK
   hide stack CENTRALSTACK
end mouseUp

/* In the stack script of  BAD-GAMESTACK */

on closeStack
   ## Reset custom props of some grouped objects.
   ## Clear pending messages
   ## Clear the cachedURLs.
   set the lockScreen to true
   ## Set to empty the filename of 100 images.
   set the lockScreen to false
   go to card "main" of stack "gss"
   show stack "gss"
   delete stack "blitz"
end closeStack

/* In the card script of  BAD-GAMESTACK, which script
   calls up the NAVIGATION-SUBSTACK that can take
   user back to CENTRALSTACK.  */

on rawKeyUp theKey
   switch theKey
      case "56"
         modal stack NAVIGATION-SUBSTACK
         pass rawKeyUp
         exit rawKeyUp
         exit to top
    end switch
end rawKeyUp

on closecard
   ## Clear the cachedURLs.
   ## Cancel pending messages.
   ## Reset custom props.
   ## For each of 100 image objects:
   ##   reset filename to "", outerglow,
   ##   and innerglow.
   ## Close the socket connection to
   ## the local server.
end closecard

/* In the card script of  NAVIGATION-SUBSTACK. */

on rawKeyUp theKey
   put "49,50,51,52" into tGameControllerRightsideButtons
   if theKey is not among the items of tGameControllerRightsideButtons then
      pass rawKeyUp
      exit rawKeyUp
   end if
  ## Find which navigational image is on.
   switch tCurentlyOnImage
      case "quit"
         send "closeStack" to stack BAD-GAMESTACK in 2 seconds
         close this stack -- i.e., NAVIGATION-SUBSTACK... should I
name the stack explicitly here?
         exit to top
   end switch
end rawKeyUp

------     E N D    O F     S C R I P T S   -----

More information about the use-livecode mailing list