From 35760b7055d56348b8be30e3e4c3d97f4eb86580 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 6 Jul 2015 12:43:16 +0200 Subject: [PATCH] common fixes for msvc in jsconsole --- cmake/Findv8.cmake | 8 ++++---- libjsengine/JSV8Engine.cpp | 10 +++++++--- libjsengine/JSV8Engine.h | 2 +- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/cmake/Findv8.cmake b/cmake/Findv8.cmake index 7004d0792..0632afecc 100644 --- a/cmake/Findv8.cmake +++ b/cmake/Findv8.cmake @@ -31,7 +31,7 @@ set(V8_LIBRARIES ${V8_LIBRARY}) if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") find_library( - V8_BASE_LIBRARY + V8_LIBRARY NAMES v8_base DOC "v8 base library" ) @@ -42,10 +42,10 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") DOC "v8 nosnapshot library" ) - set(V8_LIBRARIES ${V8_BASE_LIBRARY} ${V8_NO_SNAPSHOT_LIBRARY}) + set(V8_LIBRARIES ${V8_LIBRARY} ${V8_NO_SNAPSHOT_LIBRARY}) find_library( - V8_BASE_LIBRARY_DEBUG + V8_LIBRARY_DEBUG NAMES v8_based DOC "v8 base library" ) @@ -56,7 +56,7 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") DOC "v8 nosnapshot library" ) - set(V8_LIBRARIES optimized ${V8_LIBRARIES} debug ${V8_BASE_LIBRARY_DEBUG} ${V8_NO_SNAPSHOT_LIBRARY_DEBUG}) + set(V8_LIBRARIES optimized ${V8_LIBRARIES} debug ${V8_LIBRARY_DEBUG} ${V8_NO_SNAPSHOT_LIBRARY_DEBUG}) endif() diff --git a/libjsengine/JSV8Engine.cpp b/libjsengine/JSV8Engine.cpp index ebf0a0e72..4c7fd830a 100644 --- a/libjsengine/JSV8Engine.cpp +++ b/libjsengine/JSV8Engine.cpp @@ -90,6 +90,12 @@ void reportException(v8::TryCatch* _tryCatch) class JSV8Env { public: + static JSV8Env& getInstance() + { + static JSV8Env s_env; + return s_env; + } + ~JSV8Env() { v8::V8::Dispose(); @@ -124,8 +130,6 @@ private: } } -JSV8Env JSV8Engine::s_env = JSV8Env(); - JSString JSV8Value::toString() const { if (m_value.IsEmpty()) @@ -138,7 +142,7 @@ JSString JSV8Value::toString() const return toCString(str); } -JSV8Engine::JSV8Engine(): m_scope(new JSV8Scope()) +JSV8Engine::JSV8Engine(): m_env(JSV8Env::getInstance()), m_scope(new JSV8Scope()) { JSEngineResources resources; string common = resources.loadResourceAsString("common"); diff --git a/libjsengine/JSV8Engine.h b/libjsengine/JSV8Engine.h index 563642d73..3a5974bb7 100644 --- a/libjsengine/JSV8Engine.h +++ b/libjsengine/JSV8Engine.h @@ -56,7 +56,7 @@ public: v8::Handle const& context() const; private: - static JSV8Env s_env; + JSV8Env const& m_env; JSV8Scope* m_scope; };