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:
Yves
2014-04-25 21:19:51 +00:00
parent 49fc88ff81
commit 7acdde5c86
17 changed files with 79 additions and 84 deletions
+2
View File
@@ -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;