mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: The `RuntimeAdapter` may be used after `disableDebugging` has been called. To ensure the `RuntimeAdapter` is alive long enough for this use, the Inspector should continue to control `RuntimeAdapter`'s lifetime (which is currently done via a `unique_ptr` that's moved into the Inspector). Callers need a way to identify the `RuntimeAdapter` after it has been moved into the Inspector so that debugging can be disabled via `disableDebugging`. This could be done by switching from a `unique_ptr` to a `shared_ptr` (so the caller can keep a copy), but consumers don't really have a reason to hang onto the `RuntimeAdapter` instance. Instead, leave the `RuntimeAdapter` inside a `unique_ptr`, and have consumers use a token to identify instances. Update all consumers of this API to use this new token interface. Changelog: [Internal] Reviewed By: jpporto Differential Revision: D38513256 fbshipit-source-id: 33580747cd8365d25dbddbe289f0c41141e3bc6a
39 lines
843 B
C++
39 lines
843 B
C++
/*
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*/
|
|
|
|
#include "Registration.h"
|
|
#include "ConnectionDemux.h"
|
|
|
|
namespace facebook {
|
|
namespace hermes {
|
|
namespace inspector {
|
|
namespace chrome {
|
|
|
|
namespace {
|
|
|
|
ConnectionDemux &demux() {
|
|
static ConnectionDemux instance{facebook::react::getInspectorInstance()};
|
|
return instance;
|
|
}
|
|
|
|
} // namespace
|
|
|
|
DebugSessionToken enableDebugging(
|
|
std::unique_ptr<RuntimeAdapter> adapter,
|
|
const std::string &title) {
|
|
return demux().enableDebugging(std::move(adapter), title);
|
|
}
|
|
|
|
void disableDebugging(DebugSessionToken session) {
|
|
demux().disableDebugging(session);
|
|
}
|
|
|
|
} // namespace chrome
|
|
} // namespace inspector
|
|
} // namespace hermes
|
|
} // namespace facebook
|