From 6bae8a409033a2387a38791637cd4a029a5fd0cc Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 14 Jul 2022 17:39:43 +0800 Subject: [PATCH] fixup! src: merge NativeModuleEnv into NativeModuleLoader --- src/node.cc | 3 +-- src/node_native_module.cc | 41 +++++++++++++++++---------------------- src/node_native_module.h | 2 +- 3 files changed, 20 insertions(+), 26 deletions(-) diff --git a/src/node.cc b/src/node.cc index 13d0f9a48d4fb2..192efdbc6aa8cd 100644 --- a/src/node.cc +++ b/src/node.cc @@ -1196,8 +1196,7 @@ int Start(int argc, char** argv) { uv_loop_configure(uv_default_loop(), UV_METRICS_IDLE_TIME); if (snapshot_data != nullptr) { - native_module::NativeModuleLoader::RefreshCodeCache( - snapshot_data->code_cache); + NativeModuleLoader::RefreshCodeCache(snapshot_data->code_cache); } NodeMainInstance main_instance(snapshot_data, uv_default_loop(), diff --git a/src/node_native_module.cc b/src/node_native_module.cc index 995e22b2f9c59c..38af67c8955fd7 100644 --- a/src/node_native_module.cc +++ b/src/node_native_module.cc @@ -30,7 +30,8 @@ using v8::Value; NativeModuleLoader NativeModuleLoader::instance_; -NativeModuleLoader::NativeModuleLoader() : config_(GetConfig()) { +NativeModuleLoader::NativeModuleLoader() + : config_(GetConfig()), has_code_cache_(false) { LoadJavaScriptSource(); } @@ -39,19 +40,19 @@ NativeModuleLoader* NativeModuleLoader::GetInstance() { } bool NativeModuleLoader::Exists(const char* id) { - auto& source = NativeModuleLoader::GetInstance()->source_; + auto& source = GetInstance()->source_; return source.find(id) != source.end(); } bool NativeModuleLoader::Add(const char* id, const UnionBytes& source) { - auto result = NativeModuleLoader::GetInstance()->source_.emplace(id, source); + auto result = GetInstance()->source_.emplace(id, source); return result.second; } Local NativeModuleLoader::GetSourceObject(Local context) { Isolate* isolate = context->GetIsolate(); Local out = Object::New(isolate); - auto& source = NativeModuleLoader::GetInstance()->source_; + auto& source = GetInstance()->source_; for (auto const& x : source) { Local key = OneByteString(isolate, x.first.c_str(), x.first.size()); out->Set(context, key, x.second.ToStringChecked(isolate)).FromJust(); @@ -60,7 +61,7 @@ Local NativeModuleLoader::GetSourceObject(Local context) { } Local NativeModuleLoader::GetConfigString(Isolate* isolate) { - return NativeModuleLoader::GetInstance()->config_.ToStringChecked(isolate); + return GetInstance()->config_.ToStringChecked(isolate); } std::vector NativeModuleLoader::GetModuleIds() { @@ -361,20 +362,17 @@ MaybeLocal NativeModuleLoader::LookupAndCompile( const char* id, std::vector>* parameters, Environment* optional_env) { - NativeModuleLoader::Result result; + Result result; MaybeLocal maybe = - NativeModuleLoader::GetInstance()->LookupAndCompileInternal( - context, id, parameters, &result); + GetInstance()->LookupAndCompileInternal(context, id, parameters, &result); if (optional_env != nullptr) { RecordResult(id, result, optional_env); } return maybe; } -bool NativeModuleLoader::has_code_cache_ = false; - bool NativeModuleLoader::CompileAllModules(Local context) { - NativeModuleLoader* loader = NativeModuleLoader::GetInstance(); + NativeModuleLoader* loader = GetInstance(); std::vector ids = loader->GetModuleIds(); bool all_succeeded = true; for (const auto& id : ids) { @@ -383,7 +381,7 @@ bool NativeModuleLoader::CompileAllModules(Local context) { continue; } v8::TryCatch bootstrapCatch(context->GetIsolate()); - native_module::NativeModuleLoader::Result result; + Result result; USE(loader->CompileAsModule(context, id.c_str(), &result)); if (bootstrapCatch.HasCaught()) { per_process::Debug(DebugCategory::CODE_CACHE, @@ -397,7 +395,7 @@ bool NativeModuleLoader::CompileAllModules(Local context) { } void NativeModuleLoader::CopyCodeCache(std::vector* out) { - NativeModuleLoader* loader = NativeModuleLoader::GetInstance(); + NativeModuleLoader* loader = GetInstance(); Mutex::ScopedLock lock(loader->code_cache_mutex()); auto in = loader->code_cache(); for (auto const& item : *in) { @@ -409,7 +407,7 @@ void NativeModuleLoader::CopyCodeCache(std::vector* out) { void NativeModuleLoader::RefreshCodeCache( const std::vector& in) { - NativeModuleLoader* loader = NativeModuleLoader::GetInstance(); + NativeModuleLoader* loader = GetInstance(); Mutex::ScopedLock lock(loader->code_cache_mutex()); auto out = loader->code_cache(); for (auto const& item : in) { @@ -426,7 +424,7 @@ void NativeModuleLoader::RefreshCodeCache( out->emplace(item.id, new_cache.release()); } } - NativeModuleLoader::has_code_cache_ = true; + loader->has_code_cache_ = true; } void NativeModuleLoader::GetModuleCategories( @@ -438,9 +436,8 @@ void NativeModuleLoader::GetModuleCategories( // Copy from the per-process categories std::set cannot_be_required = - NativeModuleLoader::GetInstance()->GetCannotBeRequired(); - std::set can_be_required = - NativeModuleLoader::GetInstance()->GetCanBeRequired(); + GetInstance()->GetCannotBeRequired(); + std::set can_be_required = GetInstance()->GetCanBeRequired(); if (!env->owns_process_state()) { can_be_required.erase("trace_events"); @@ -522,8 +519,7 @@ void NativeModuleLoader::ModuleIdsGetter( Local property, const PropertyCallbackInfo& info) { Isolate* isolate = info.GetIsolate(); - std::vector ids = - NativeModuleLoader::GetInstance()->GetModuleIds(); + std::vector ids = GetInstance()->GetModuleIds(); info.GetReturnValue().Set( ToV8Value(isolate->GetCurrentContext(), ids).ToLocalChecked()); } @@ -550,8 +546,7 @@ void NativeModuleLoader::CompileFunction( const char* id = *id_v; NativeModuleLoader::Result result; MaybeLocal maybe = - NativeModuleLoader::GetInstance()->CompileAsModule( - env->context(), id, &result); + GetInstance()->CompileAsModule(env->context(), id, &result); RecordResult(id, result, env); Local fn; if (maybe.ToLocal(&fn)) { @@ -562,7 +557,7 @@ void NativeModuleLoader::CompileFunction( void NativeModuleLoader::HasCachedBuiltins( const FunctionCallbackInfo& args) { args.GetReturnValue().Set( - v8::Boolean::New(args.GetIsolate(), NativeModuleLoader::has_code_cache_)); + v8::Boolean::New(args.GetIsolate(), GetInstance()->has_code_cache_)); } // TODO(joyeecheung): It is somewhat confusing that Class::Initialize diff --git a/src/node_native_module.h b/src/node_native_module.h index bc5612d328fb27..3c797a5d35b17e 100644 --- a/src/node_native_module.h +++ b/src/node_native_module.h @@ -133,7 +133,7 @@ class NODE_EXTERN_PRIVATE NativeModuleLoader { // Used to synchronize access to the code cache map Mutex code_cache_mutex_; - static bool has_code_cache_; + bool has_code_cache_; friend class ::PerProcessTest; };