1256b5942SŁukasz Kosmaty #include "WeakRuntimeHolder.h" 2256b5942SŁukasz Kosmaty #include "JavaScriptRuntime.h" 3*879827bbSŁukasz Kosmaty #include "JSIInteropModuleRegistry.h" 4256b5942SŁukasz Kosmaty 5256b5942SŁukasz Kosmaty namespace expo { WeakRuntimeHolder(std::weak_ptr<JavaScriptRuntime> runtime)6256b5942SŁukasz KosmatyWeakRuntimeHolder::WeakRuntimeHolder(std::weak_ptr<JavaScriptRuntime> runtime) 7256b5942SŁukasz Kosmaty : std::weak_ptr<JavaScriptRuntime>(std::move(runtime)) {} 8256b5942SŁukasz Kosmaty getJSRuntime()9256b5942SŁukasz Kosmatyjsi::Runtime &WeakRuntimeHolder::getJSRuntime() { 10256b5942SŁukasz Kosmaty auto runtime = lock(); 11256b5942SŁukasz Kosmaty assert((runtime != nullptr) && "JS Runtime was used after deallocation"); 12256b5942SŁukasz Kosmaty return runtime->get(); 13256b5942SŁukasz Kosmaty } 14256b5942SŁukasz Kosmaty ensureRuntimeIsValid()15256b5942SŁukasz Kosmatyvoid WeakRuntimeHolder::ensureRuntimeIsValid() { 16256b5942SŁukasz Kosmaty assert((!expired()) && "JS Runtime was used after deallocation"); 17256b5942SŁukasz Kosmaty } 18*879827bbSŁukasz Kosmaty getModuleRegistry()19*879827bbSŁukasz KosmatyJSIInteropModuleRegistry *WeakRuntimeHolder::getModuleRegistry() { 20*879827bbSŁukasz Kosmaty auto runtime = lock(); 21*879827bbSŁukasz Kosmaty assert((runtime != nullptr) && "JS Runtime was used after deallocation"); 22*879827bbSŁukasz Kosmaty return runtime->getModuleRegistry(); 23*879827bbSŁukasz Kosmaty } 24256b5942SŁukasz Kosmaty } // namespace expo 25