1 #include "WeakRuntimeHolder.h" 2 #include "JavaScriptRuntime.h" 3 #include "JSIInteropModuleRegistry.h" 4 5 namespace expo { WeakRuntimeHolder(std::weak_ptr<JavaScriptRuntime> runtime)6WeakRuntimeHolder::WeakRuntimeHolder(std::weak_ptr<JavaScriptRuntime> runtime) 7 : std::weak_ptr<JavaScriptRuntime>(std::move(runtime)) {} 8 getJSRuntime()9jsi::Runtime &WeakRuntimeHolder::getJSRuntime() { 10 auto runtime = lock(); 11 assert((runtime != nullptr) && "JS Runtime was used after deallocation"); 12 return runtime->get(); 13 } 14 ensureRuntimeIsValid()15void WeakRuntimeHolder::ensureRuntimeIsValid() { 16 assert((!expired()) && "JS Runtime was used after deallocation"); 17 } 18 getModuleRegistry()19JSIInteropModuleRegistry *WeakRuntimeHolder::getModuleRegistry() { 20 auto runtime = lock(); 21 assert((runtime != nullptr) && "JS Runtime was used after deallocation"); 22 return runtime->getModuleRegistry(); 23 } 24 } // namespace expo 25