Execute the revert command after you download the preferences stack:

  revert stack prefsLocation

What the revert command does is reload the stack from the copy on disk, replacing the copy in memory. Since the disk copy is the new version, this will suck the new version into memory, replacing the old one.


Is there any chance that a stack remains in memory and that Rev recreates it without my code telling it to? In my uninstaller, after it deletes the preference stack, I discovered awhile back that my app must immediately quit. Otherwise things would reappear. Nowhere in my code does it say to create a stack, except in the startup routine. Once the app is fully launched, it does not ever create a stack. I am wondering if this is what's happening now when trying to replace a stack. Jeanne, I added revert as follows, and the app fails to launch at all.

Also, if I quit the app and open the pref stack manually and check the xVersion, it shows that it's the old version, not the new one. So it isn't just in memory, the actual stack is wrong. So the new version never seems to get created. The old one is deleted, then recreated somehow. There are no detours in the following code.

I added a lot of waits because sometimes that fixes weird problems. To no avail this time.


repeat with x = 1 to the number of cds of stack prefStack
        set the cantDelete of cd x of stack prefStack to false
      end repeat
      if "UserPrefs" is in the stacksInUse then
        stop using stack "UserPrefs"
        delete stack "UserPrefs"
      end if
      if "UserPrefs" is in the openstacks then
        close stack "UserPrefs"
        delete stack "UserPrefs"
      end if
      wait 10 ticks # giving it a chance to fully finish
      delete file prefStack
      wait 30 ticks # giving it a chance to fully finish
      answer "File deleted" # so that I can verify in the Prefs folder
        # that the file is actually deleted
      put decompress(the stackData of stack myAppStack) into s
      put s into url ("binfile:" & prefStack)
      save stack prefStack
      wait 5 ticks # giving it a chance to finish
answer the xVersion of stack prefStack # gives the xVersion of the deleted stack,
# if I quit everything then open what should be the newly created stack,
# it is the same as the deleted stack, the new version never appears.

# here is where I tried to add revert
      revert stack dataPath
      answer the xVersion of stack dataPath
# the entire app failed to appear when I added revert, it's as though it just silently quit # I never got an answer, nor a single window to appear, the app did not appear in stacksInUse or openStacks
--
WlND0WS and MAClNT0SH shareware games
BIackjack GoId
http://www.gypsyware.com
_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to