Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit aa8d621

Browse files
committed
stuart feedback 2: replaced the shared_ptr
1 parent a248e62 commit aa8d621

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

shell/platform/glfw/flutter_glfw.cc

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ struct AOTDataDeleter {
106106
};
107107

108108
using UniqueAotDataPtr = std::unique_ptr<_FlutterEngineAOTData, AOTDataDeleter>;
109+
/// Maintains one ref on the FlutterDesktopMessenger's internal reference count.
110+
using FlutterDesktopMessengerReferenceOwner =
111+
std::unique_ptr<FlutterDesktopMessenger,
112+
decltype(&FlutterDesktopMessengerRelease)>;
109113

110114
// Struct for storing state of a Flutter engine instance.
111115
struct FlutterDesktopEngineState {
@@ -116,7 +120,8 @@ struct FlutterDesktopEngineState {
116120
std::unique_ptr<flutter::EventLoop> event_loop;
117121

118122
// The plugin messenger handle given to API clients.
119-
std::shared_ptr<FlutterDesktopMessenger> messenger;
123+
FlutterDesktopMessengerReferenceOwner messenger = {
124+
nullptr, [](FlutterDesktopMessengerRef ref) {}};
120125

121126
// Message dispatch manager for messages from the Flutter engine.
122127
std::unique_ptr<flutter::IncomingMessageDispatcher> message_dispatcher;
@@ -792,7 +797,7 @@ static void SetUpLocales(FlutterDesktopEngineState* state) {
792797
static void SetUpCommonEngineState(FlutterDesktopEngineState* state,
793798
GLFWwindow* window) {
794799
// Messaging.
795-
state->messenger = std::shared_ptr<FlutterDesktopMessenger>(
800+
state->messenger = FlutterDesktopMessengerReferenceOwner(
796801
FlutterDesktopMessengerAddRef(new FlutterDesktopMessenger()),
797802
&FlutterDesktopMessengerRelease);
798803
state->messenger->SetEngine(state);

0 commit comments

Comments
 (0)