From f72e6551f093e7f9f02531c6a69f390521463bf8 Mon Sep 17 00:00:00 2001 From: Webster Xu <948036947@qq.com> Date: Thu, 15 Dec 2022 01:37:28 +0800 Subject: [PATCH] fix: use the process cache to reduce the memory for asar file (#36600) * fix: use the process cache to reduce the memory for asar file * Update shell/common/api/electron_api_asar.cc Co-authored-by: webster.xu Co-authored-by: Jeremy Rose --- shell/common/api/electron_api_asar.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/shell/common/api/electron_api_asar.cc b/shell/common/api/electron_api_asar.cc index 0b2397ff2c33..dc98314cb300 100644 --- a/shell/common/api/electron_api_asar.cc +++ b/shell/common/api/electron_api_asar.cc @@ -39,7 +39,7 @@ class Archive : public node::ObjectWrap { Archive& operator=(const Archive&) = delete; protected: - explicit Archive(std::unique_ptr archive) + explicit Archive(std::shared_ptr archive) : archive_(std::move(archive)) {} static void New(const v8::FunctionCallbackInfo& args) { @@ -52,8 +52,8 @@ class Archive : public node::ObjectWrap { return; } - auto archive = std::make_unique(path); - if (!archive->Init()) { + std::shared_ptr archive = asar::GetOrCreateAsarArchive(path); + if (!archive) { isolate->ThrowException(v8::Exception::Error(node::FIXED_ONE_BYTE_STRING( isolate, "failed to initialize archive"))); return; @@ -190,7 +190,7 @@ class Archive : public node::ObjectWrap { isolate, wrap->archive_ ? wrap->archive_->GetUnsafeFD() : -1)); } - std::unique_ptr archive_; + std::shared_ptr archive_; }; static void InitAsarSupport(const v8::FunctionCallbackInfo& args) {