From de933233e62c87fa57506cd2d828a47f2a5b4ead Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Tue, 8 Apr 2025 07:08:15 -0500 Subject: [PATCH] refactor: make `TrackableObjectBase::weak_map_id_` const (#46557) refactor: make TrackableObjectBase::weak_map_id_ const simplify declaration and initialization Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Charles Kerr --- shell/common/gin_helper/trackable_object.h | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/shell/common/gin_helper/trackable_object.h b/shell/common/gin_helper/trackable_object.h index 7a7e6350dd99..aa040aec5889 100644 --- a/shell/common/gin_helper/trackable_object.h +++ b/shell/common/gin_helper/trackable_object.h @@ -42,11 +42,12 @@ class TrackableObjectBase : public CleanedUpAtExit { // Returns a closure that can destroy the native class. base::OnceClosure GetDestroyClosure(); - int32_t weak_map_id_ = 0; - private: void Destroy(); + static inline int32_t next_id_ = 0; + const int32_t weak_map_id_ = ++next_id_; + base::WeakPtrFactory weak_factory_{this}; }; @@ -111,26 +112,21 @@ class TrackableObject : public TrackableObjectBase, public EventEmitter { } protected: - TrackableObject() { weak_map_id_ = ++next_id_; } - + TrackableObject() = default; ~TrackableObject() override { RemoveFromWeakMap(); } void InitWith(v8::Isolate* isolate, v8::Local wrapper) override { if (!weak_map_) { weak_map_ = new electron::KeyWeakMap; } - weak_map_->Set(isolate, weak_map_id_, wrapper); + weak_map_->Set(isolate, weak_map_id(), wrapper); gin_helper::WrappableBase::InitWith(isolate, wrapper); } private: - static int32_t next_id_; static electron::KeyWeakMap* weak_map_; // leaked on purpose }; -template -int32_t TrackableObject::next_id_ = 0; - template electron::KeyWeakMap* TrackableObject::weak_map_ = nullptr;