Index: source/ps/Game.cpp =================================================================== --- source/ps/Game.cpp +++ source/ps/Game.cpp @@ -173,7 +173,6 @@ debug_printf("Starting to replay %s\n", replayPath.string8().c_str()); m_IsVisualReplay = true; - ScriptInterface& scriptInterface = m_Simulation2->GetScriptInterface(); SetTurnManager(new CReplayTurnManager(*m_Simulation2, GetReplayLogger())); @@ -186,6 +185,7 @@ std::string line; std::getline(*m_ReplayStream, line); + const ScriptInterface& scriptInterface = m_Simulation2->GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); @@ -203,7 +203,7 @@ **/ void CGame::RegisterInit(const JS::HandleValue attribs, const std::string& savedState) { - ScriptInterface& scriptInterface = m_Simulation2->GetScriptInterface(); + const ScriptInterface& scriptInterface = m_Simulation2->GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); Index: source/ps/TemplateLoader.h =================================================================== --- source/ps/TemplateLoader.h +++ source/ps/TemplateLoader.h @@ -65,7 +65,7 @@ */ std::vector FindTemplates(const std::string& path, bool includeSubdirectories, ETemplatesType templatesType) const; - std::vector FindPlaceableTemplates(const std::string& path, bool includeSubdirectories, ETemplatesType templatesType, ScriptInterface& scriptInterface) const; + std::vector FindPlaceableTemplates(const std::string& path, bool includeSubdirectories, ETemplatesType templatesType, const ScriptInterface& scriptInterface) const; private: /** Index: source/ps/TemplateLoader.cpp =================================================================== --- source/ps/TemplateLoader.cpp +++ source/ps/TemplateLoader.cpp @@ -152,7 +152,7 @@ return VfsFileExists(VfsPath(TEMPLATE_ROOT) / wstring_from_utf8(baseName + ".xml")); } -std::vector CTemplateLoader::FindPlaceableTemplates(const std::string& path, bool includeSubdirectories, ETemplatesType templatesType, ScriptInterface& scriptInterface) const +std::vector CTemplateLoader::FindPlaceableTemplates(const std::string& path, bool includeSubdirectories, ETemplatesType templatesType, const ScriptInterface& scriptInterface) const { if (templatesType != SIMULATION_TEMPLATES && templatesType != ACTOR_TEMPLATES && templatesType != ALL_TEMPLATES) { Index: source/scriptinterface/ScriptInterface.h =================================================================== --- source/scriptinterface/ScriptInterface.h +++ source/scriptinterface/ScriptInterface.h @@ -134,9 +134,7 @@ JSObject* CreateCustomObject(const std::string & typeName) const; void DefineCustomObjectType(JSClass *clasp, JSNative constructor, uint minArgs, JSPropertySpec *ps, JSFunctionSpec *fs, JSPropertySpec *static_ps, JSFunctionSpec *static_fs); - JS::Value GetGlobalObject(); - - JSClass* GetGlobalClass(); + JS::Value GetGlobalObject() const; /** * Set the named property on the global object. Index: source/scriptinterface/ScriptInterface.cpp =================================================================== --- source/scriptinterface/ScriptInterface.cpp +++ source/scriptinterface/ScriptInterface.cpp @@ -596,17 +596,12 @@ return ok; } -JS::Value ScriptInterface::GetGlobalObject() +JS::Value ScriptInterface::GetGlobalObject() const { JSAutoRequest rq(m->m_cx); return JS::ObjectValue(*JS::CurrentGlobalOrNull(m->m_cx)); } -JSClass* ScriptInterface::GetGlobalClass() -{ - return &global_class; -} - bool ScriptInterface::SetGlobal_(const char* name, JS::HandleValue value, bool replace) { JSAutoRequest rq(m->m_cx); Index: source/simulation2/Simulation2.cpp =================================================================== --- source/simulation2/Simulation2.cpp +++ source/simulation2/Simulation2.cpp @@ -360,7 +360,7 @@ const bool serializationTestHash = true; // set true to save and compare hash of state SerializationTestState primaryStateBefore; - ScriptInterface& scriptInterface = m_ComponentManager.GetScriptInterface(); + const ScriptInterface& scriptInterface = m_ComponentManager.GetScriptInterface(); const bool startRejoinTest = (int64_t) m_RejoinTestTurn == m_TurnNumber; if (startRejoinTest) @@ -951,7 +951,7 @@ std::string CSimulation2::GetAIData() { - ScriptInterface& scriptInterface = GetScriptInterface(); + const ScriptInterface& scriptInterface = GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); JS::RootedValue aiData(cx, ICmpAIManager::GetAIs(scriptInterface)); Index: source/simulation2/components/CCmpAIManager.cpp =================================================================== --- source/simulation2/components/CCmpAIManager.cpp +++ source/simulation2/components/CCmpAIManager.cpp @@ -1044,7 +1044,7 @@ virtual void TryLoadSharedComponent() { - ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); + const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); @@ -1062,7 +1062,7 @@ virtual void RunGamestateInit() { - ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); + const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); @@ -1105,7 +1105,7 @@ ForceLoadEntityTemplates(); - ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); + const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); @@ -1170,7 +1170,7 @@ if (!cmpCommandQueue) return; - ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); + const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); JS::RootedValue clonedCommandVal(cx); @@ -1238,7 +1238,7 @@ if (!cmpPathfinder) return; - ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); + const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); Index: source/simulation2/components/CCmpCommandQueue.cpp =================================================================== --- source/simulation2/components/CCmpCommandQueue.cpp +++ source/simulation2/components/CCmpCommandQueue.cpp @@ -105,7 +105,7 @@ virtual void FlushTurn(const std::vector& commands) { - ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); + const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); Index: source/simulation2/components/CCmpTemplateManager.cpp =================================================================== --- source/simulation2/components/CCmpTemplateManager.cpp +++ source/simulation2/components/CCmpTemplateManager.cpp @@ -218,7 +218,7 @@ std::vector CCmpTemplateManager::FindAllPlaceableTemplates(bool includeActors) const { - ScriptInterface& scriptInterface = this->GetSimContext().GetScriptInterface(); + const ScriptInterface& scriptInterface = GetSimContext().GetScriptInterface(); ETemplatesType templatesType = includeActors ? ALL_TEMPLATES : SIMULATION_TEMPLATES; return m_templateLoader.FindPlaceableTemplates("", true, templatesType, scriptInterface); Index: source/simulation2/system/ComponentTest.h =================================================================== --- source/simulation2/system/ComponentTest.h +++ source/simulation2/system/ComponentTest.h @@ -58,7 +58,7 @@ m_ComponentManager.LoadComponentTypes(); } - ScriptInterface& GetScriptInterface() + const ScriptInterface& GetScriptInterface() { return m_ComponentManager.GetScriptInterface(); } Index: source/tools/atlas/GameInterface/Handlers/MapHandlers.cpp =================================================================== --- source/tools/atlas/GameInterface/Handlers/MapHandlers.cpp +++ source/tools/atlas/GameInterface/Handlers/MapHandlers.cpp @@ -1,4 +1,4 @@ -/* Copyright (C) 2016 Wildfire Games. +/* Copyright (C) 2017 Wildfire Games. * This file is part of 0 A.D. * * 0 A.D. is free software: you can redistribute it and/or modify @@ -89,7 +89,7 @@ InitGame(); // Random map - ScriptInterface& scriptInterface = g_Game->GetSimulation2()->GetScriptInterface(); + const ScriptInterface& scriptInterface = g_Game->GetSimulation2()->GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); @@ -116,7 +116,7 @@ InitGame(); - ScriptInterface& scriptInterface = g_Game->GetSimulation2()->GetScriptInterface(); + const ScriptInterface& scriptInterface = g_Game->GetSimulation2()->GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx); @@ -149,7 +149,7 @@ { InitGame(); - ScriptInterface& scriptInterface = g_Game->GetSimulation2()->GetScriptInterface(); + const ScriptInterface& scriptInterface = g_Game->GetSimulation2()->GetScriptInterface(); JSContext* cx = scriptInterface.GetContext(); JSAutoRequest rq(cx);