mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-21 01:04:06 +00:00
Changes tests to use global g_ScriptRuntime instead of creating a new JSRuntime for each test.
The tests crashed on my Debian systems but not on my Ubuntu system. The crash happened in line 142 of SpiderMonkey's ThreadLocal.h. I know that I had to use a workarounnd for contexts to avoid destroying the context that was created first. I also had in mind that in newer versions a JS_Init function got introduced which presumably solves this kind of issues. Based on this experience I assumed runtimes could have a similar problem and this patch indeed fixes the issues. Unfortunately the correct usage of JSRuntimes in that regard is not documented. There's only a rater misterious comment in JSAPI.h which hasn't been cleared up so far and is most likely completely outdated (https://bugzilla.mozilla.org/show_bug.cgi?id=992641). This was SVN commit r14995.
This commit is contained in:
@@ -81,12 +81,14 @@ class MiscSetup : public CxxTest::GlobalFixture
|
||||
ThreadUtil::SetMainThread();
|
||||
|
||||
g_Profiler2.Initialise();
|
||||
g_ScriptRuntime = ScriptInterface::CreateRuntime();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
virtual bool tearDownWorld()
|
||||
{
|
||||
g_ScriptRuntime.reset();
|
||||
g_Profiler2.Shutdown();
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user