mirror of
https://gitea.wildfiregames.com/0ad/0ad.git
synced 2026-06-22 03:25:48 +00:00
Rename ScriptRuntime to ScriptContext
SM52 essentially replaces JSRuntime with JSContext (though JSContext itself was replaced with JSCompartment). To prepare for this migration, rename all Runtime-related things to Context. Part of the SM52 migration, stage: SM45 compatible. Patch by: Itms Refs #4893 Differential Revision: https://code.wildfiregames.com/D3091 This was SVN commit r24181.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 2019 Wildfire Games.
|
||||
/* Copyright (C) 2020 Wildfire Games.
|
||||
* This file is part of 0 A.D.
|
||||
*
|
||||
* 0 A.D. is free software: you can redistribute it and/or modify
|
||||
@@ -25,10 +25,10 @@
|
||||
|
||||
/**
|
||||
* A class using the RAII (Resource Acquisition Is Initialization) idiom to manage initialization
|
||||
* and shutdown of the SpiderMonkey script engine. It also keeps a count of active script runtimes
|
||||
* and shutdown of the SpiderMonkey script engine. It also keeps a count of active script contexts
|
||||
* in order to validate the following constraints:
|
||||
* 1. JS_Init must be called before any ScriptRuntimes are initialized
|
||||
* 2. JS_Shutdown must be called after all ScriptRuntimes have been destroyed
|
||||
* 1. JS_Init must be called before any ScriptContexts are initialized
|
||||
* 2. JS_Shutdown must be called after all ScriptContexts have been destroyed
|
||||
*/
|
||||
|
||||
class ScriptEngine : public Singleton<ScriptEngine>
|
||||
@@ -36,21 +36,21 @@ class ScriptEngine : public Singleton<ScriptEngine>
|
||||
public:
|
||||
ScriptEngine()
|
||||
{
|
||||
ENSURE(m_Runtimes.empty() && "JS_Init must be called before any runtimes are created!");
|
||||
ENSURE(m_Contexts.empty() && "JS_Init must be called before any contexts are created!");
|
||||
JS_Init();
|
||||
}
|
||||
|
||||
~ScriptEngine()
|
||||
{
|
||||
ENSURE(m_Runtimes.empty() && "All runtimes must be destroyed before calling JS_ShutDown!");
|
||||
ENSURE(m_Contexts.empty() && "All contexts must be destroyed before calling JS_ShutDown!");
|
||||
JS_ShutDown();
|
||||
}
|
||||
|
||||
void RegisterRuntime(const JSRuntime* rt) { m_Runtimes.push_back(rt); }
|
||||
void UnRegisterRuntime(const JSRuntime* rt) { m_Runtimes.remove(rt); }
|
||||
void RegisterContext(const JSContext* cx) { m_Contexts.push_back(cx); }
|
||||
void UnRegisterContext(const JSContext* cx) { m_Contexts.remove(cx); }
|
||||
|
||||
private:
|
||||
std::list<const JSRuntime*> m_Runtimes;
|
||||
std::list<const JSContext*> m_Contexts;
|
||||
};
|
||||
|
||||
#endif // INCLUDED_SCRIPTENGINE
|
||||
|
||||
Reference in New Issue
Block a user