Crash when trying to use a Tab.Var as a cache

ID : 663

I was testing a script to find a workaround for the issue described here.

Basically the idea was:

  • When the script runs for the first item, check if this Tab.Var exists to grab a map of items with their respective values. If it doesn't, grab all items from the tab (if any) and process them in batch.
  • Save the values to the Tab.Var.
  • When OnBeforeFolderChange() triggers, delete the Tab.Var.

But Opus sometimes crashes when OnBeforeFolderChange() runs while the columns are still being populated.

I guess that sometimes the var gets deleted while it's still being used to calculate values, because OnBeforeFolderChange() can trigger simultaneously.

Nevermind, I found what the real issue was, and it's not related to what I originally thought. Sorry for the trouble.

1 Like

Still it'd be nice to fix the crash - if you can give me a script that reproduces it that'd be great.

Jon, sorry, I already fixed the error so I don't have that script anymore.
But I can tell you what it was.
Basically, I forgot the "map" I was using to store values was a JScript object. The crash happens when you load it from a Tab.Var (saving it is fine; the error occurs when loading/deleting if the object has properties that are also objects/null) or any other Var I guess. The object was produced dynamically from a JSON, so it had mixed types.
Switching it to an Opus Map fixed it.