Skip to content

Commit 330080c

Browse files
chrfalchreact-native-bot
authored andcommitted
fix(iOS): make jsinspector-modern tracing state types move-only for Swift C++ interop (#57605)
Summary: The nightly-tests job `[ios] react-native-unistyles` fails on Xcode 26.3 with: ``` error: no matching function for call to '__construct_at' note: in instantiation of member function 'std::vector<...RuntimeSamplingProfile>::vector' requested here note: in implicit copy constructor for 'facebook::react::jsinspector_modern::tracing::TraceRecordingState' first required here ``` while compiling the **Swift** files of the Unistyles pod. The same failure hits any library built with Swift C++ interop (`-cxx-interoperability-mode=default`) — in practice, every Nitro-based library — against the prebuilt React Native core. ### The error `TraceRecordingState` and `HostTracingProfile` hold `std::vector`s of move-only types (`RuntimeSamplingProfile` and `FrameTimingSequence` explicitly delete their copy constructors). Here's the C++ subtlety: `std::vector<T>`'s copy constructor is **declared for every `T`** — it only becomes ill-formed when *instantiated*. So the implicit copy constructors of these two structs are not implicitly deleted; they exist as declared-but-broken constructors that hard-error the moment anything asks for a copy. ### Why React Native compiles fine today Nothing in RN ever asks. Every usage passes these types by reference; the single constructions move. A pure C++ (or ObjC++) build never instantiates the implicit copy constructors, so this code has always compiled — and always would, no matter how much C++ CI you throw at it. The defect is unobservable from within C++. ### What fails, and why now The prebuilt-core headers now ship as real clang modules. A Swift target with C++ interop imports them (directly or transitively — e.g. via a module member whose `#ifdef __cplusplus` body opens because interop builds modules with C++ enabled), and Swift's ClangImporter surfaces the C++ value types to Swift as copyable. When the consumer's generated interop code then uses such a type as a Swift value — for a Nitro-based library, the nitrogen-generated `*_cxx.swift` bridging does exactly this — the compiler **synthesizes a copy of the type, instantiating the ill-formed implicit copy constructor**. That is the "ask" that plain C++ never makes; on Xcode 26.3 it hard-errors the entire module import, killing every Swift file in the consumer. (Newer Swift toolchains treat such types as non-copyable instead of failing.) Before the prebuilt-modules work there was no Swift-visible module containing these headers, so no interop consumer ever imported these types — which is why this surfaces now despite the C++ being unchanged. We deliberately did **not** fix this by removing headers from the module maps: the guarded-C++-in-modules pattern is shared by ~30 legitimately modular headers and is benign in all but this one shape, and experiments showed the type is reachable through multiple independent module surfaces (removing one member just moved the error to the next path). ### The fix Declare the truth: make both types explicitly move-only. ```cpp TraceRecordingState(const TraceRecordingState &) = delete; TraceRecordingState &operator=(const TraceRecordingState &) = delete; TraceRecordingState(TraceRecordingState &&) = default; TraceRecordingState &operator=(TraceRecordingState &&) = default; ``` With the copy constructor explicitly deleted, Swift's importer sees a non-copyable type and imports it as such instead of instantiating a broken copy. It is also simply more correct C++: these types were never copyable in practice, and the explicit deletion turns any future accidental copy into a clear compile error at the call site instead of a template backtrace. Declaring special members makes `HostTracingProfile` a non-aggregate, so its one designated-initializer construction site (`HostTargetTraceRecording.cpp`) is converted to member-wise assignment. A sweep of the affected header surface (`std::vector`/`std::map`/`std::deque` of move-only element types) found exactly these two types; a follow-up adds a `headers-verify.js` gate that imports the shipped modules under Swift C++ interop at prebuild time, so the next type with this shape fails RN's own CI instead of community nightlies. ## Changelog: [IOS] [FIXED] - Fix Swift C++-interop build failure (implicit copy constructor of TraceRecordingState/HostTracingProfile) for libraries using cxx interop with prebuilt React Native core Pull Request resolved: #57605 Test Plan: On a fresh RN-nightly app with stock `react-native-unistyles@3.3.0` + `react-native-nitro-modules`, prebuilt core (`RCT_USE_RN_DEP=1 RCT_USE_PREBUILT_RNCORE=1`), Xcode 26.3: - **Red**: stock headers reproduce the CI failure exactly (`__construct_at` → `TraceRecordingState`). Fixing only `TraceRecordingState` then surfaces the identical failure on `HostTracingProfile` — confirming the shape, not the type, is the bug. - **Green**: with both headers fixed (stock module maps, nothing else changed): BUILD SUCCEEDED — zero `__construct_at`, zero `shadowNodeFromValue`, zero module errors. - All RN-internal usages audited: references and moves only; no behavior change. Plain C++/ObjC++ compilation unaffected by construction. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed By: fabriziocucci Differential Revision: D112802806 Pulled By: cipolleschi fbshipit-source-id: d2ae201c1fbb4de040f51ebc88263c7347b5979b
1 parent 514f104 commit 330080c

12 files changed

Lines changed: 134 additions & 8 deletions

packages/react-native/ReactCommon/jsinspector-modern/HostTargetTraceRecording.cpp

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,16 @@ tracing::HostTracingProfile HostTargetTraceRecording::stop() {
6464
auto startTime = *startTime_;
6565
startTime_.reset();
6666

67-
return tracing::HostTracingProfile{
68-
.processId = oscompat::getCurrentProcessId(),
69-
.startTime = startTime,
70-
.frameTimings = frameTimings_.pruneExpiredAndExtract(),
71-
.instanceTracingProfiles = std::move(state.instanceTracingProfiles),
72-
.runtimeSamplingProfiles = std::move(state.runtimeSamplingProfiles),
73-
};
67+
// Member-wise assignment instead of designated initializers:
68+
// HostTracingProfile declares its special members (move-only) and is no
69+
// longer an aggregate.
70+
tracing::HostTracingProfile profile;
71+
profile.processId = oscompat::getCurrentProcessId();
72+
profile.startTime = startTime;
73+
profile.frameTimings = frameTimings_.pruneExpiredAndExtract();
74+
profile.instanceTracingProfiles = std::move(state.instanceTracingProfiles);
75+
profile.runtimeSamplingProfiles = std::move(state.runtimeSamplingProfiles);
76+
return profile;
7477
}
7578

7679
void HostTargetTraceRecording::recordFrameTimings(

packages/react-native/ReactCommon/jsinspector-modern/tracing/HostTracingProfile.h

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,22 @@ namespace facebook::react::jsinspector_modern::tracing {
2323
* messages.
2424
*/
2525
struct HostTracingProfile {
26+
HostTracingProfile() = default;
27+
28+
// Explicitly move-only: FrameTimingSequence and RuntimeSamplingProfile are
29+
// not copyable, so the implicit copy constructor is ill-formed the moment it
30+
// is instantiated. Plain C++ never instantiates it, but Swift's C++ interop
31+
// does when these headers are reached from an imported module, turning it
32+
// into a hard compile error (Xcode 26.3).
33+
HostTracingProfile(const HostTracingProfile &) = delete;
34+
HostTracingProfile &operator=(const HostTracingProfile &) = delete;
35+
HostTracingProfile(HostTracingProfile &&) = default;
36+
HostTracingProfile &operator=(HostTracingProfile &&) = default;
37+
~HostTracingProfile() = default;
38+
2639
// The ID of the OS-level process that this Trace Recording is associated
2740
// with.
28-
ProcessId processId;
41+
ProcessId processId{};
2942

3043
// The timestamp at which this Trace Recording started.
3144
HighResTimeStamp startTime;

packages/react-native/ReactCommon/jsinspector-modern/tracing/TraceRecordingState.h

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,17 @@ struct TraceRecordingState {
3131
{
3232
}
3333

34+
// Explicitly move-only: RuntimeSamplingProfile is not copyable, so the
35+
// implicit copy constructor is ill-formed the moment it is instantiated.
36+
// Plain C++ never instantiates it, but Swift's C++ interop (ClangImporter)
37+
// does when a consumer imports these headers as part of a module, turning
38+
// it into a hard compile error (Xcode 26.3).
39+
TraceRecordingState(const TraceRecordingState &) = delete;
40+
TraceRecordingState &operator=(const TraceRecordingState &) = delete;
41+
TraceRecordingState(TraceRecordingState &&) = default;
42+
TraceRecordingState &operator=(TraceRecordingState &&) = default;
43+
~TraceRecordingState() = default;
44+
3445
// The mode of this Trace Recording.
3546
tracing::Mode mode;
3647

scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11305,11 +11305,17 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
1130511305
}
1130611306

1130711307
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
11308+
public HostTracingProfile() = default;
11309+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
11310+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1130811311
public facebook::react::HighResTimeStamp startTime;
11312+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
11313+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1130911314
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1131011315
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1131111316
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1131211317
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11318+
public ~HostTracingProfile() = default;
1131311319
}
1131411320

1131511321
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -11402,12 +11408,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1140211408
}
1140311409

1140411410
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
11411+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1140511412
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories, std::optional<facebook::react::HighResDuration> windowSize = std::nullopt);
11413+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1140611414
public facebook::react::jsinspector_modern::tracing::Mode mode;
11415+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
11416+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1140711417
public std::optional<facebook::react::HighResDuration> windowSize;
1140811418
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1140911419
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1141011420
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11421+
public ~TraceRecordingState() = default;
1141111422
}
1141211423

1141311424
template <typename T>

scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10928,11 +10928,17 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
1092810928
}
1092910929

1093010930
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
10931+
public HostTracingProfile() = default;
10932+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
10933+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1093110934
public facebook::react::HighResTimeStamp startTime;
10935+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
10936+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1093210937
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1093310938
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1093410939
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1093510940
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
10941+
public ~HostTracingProfile() = default;
1093610942
}
1093710943

1093810944
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -11025,12 +11031,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1102511031
}
1102611032

1102711033
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
11034+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1102811035
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories, std::optional<facebook::react::HighResDuration> windowSize = std::nullopt);
11036+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1102911037
public facebook::react::jsinspector_modern::tracing::Mode mode;
11038+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
11039+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1103011040
public std::optional<facebook::react::HighResDuration> windowSize;
1103111041
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1103211042
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1103311043
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11044+
public ~TraceRecordingState() = default;
1103411045
}
1103511046

1103611047
template <typename T>

scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11158,11 +11158,17 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
1115811158
}
1115911159

1116011160
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
11161+
public HostTracingProfile() = default;
11162+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
11163+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1116111164
public facebook::react::HighResTimeStamp startTime;
11165+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
11166+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1116211167
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1116311168
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1116411169
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1116511170
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11171+
public ~HostTracingProfile() = default;
1116611172
}
1116711173

1116811174
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -11255,12 +11261,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1125511261
}
1125611262

1125711263
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
11264+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1125811265
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories, std::optional<facebook::react::HighResDuration> windowSize = std::nullopt);
11266+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1125911267
public facebook::react::jsinspector_modern::tracing::Mode mode;
11268+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
11269+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1126011270
public std::optional<facebook::react::HighResDuration> windowSize;
1126111271
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1126211272
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1126311273
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11274+
public ~TraceRecordingState() = default;
1126411275
}
1126511276

1126611277
template <typename T>

scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13139,11 +13139,17 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
1313913139
}
1314013140

1314113141
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
13142+
public HostTracingProfile() = default;
13143+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
13144+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1314213145
public facebook::react::HighResTimeStamp startTime;
13146+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
13147+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1314313148
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1314413149
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1314513150
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1314613151
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
13152+
public ~HostTracingProfile() = default;
1314713153
}
1314813154

1314913155
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -13236,12 +13242,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1323613242
}
1323713243

1323813244
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
13245+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1323913246
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories, std::optional<facebook::react::HighResDuration> windowSize = std::nullopt);
13247+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1324013248
public facebook::react::jsinspector_modern::tracing::Mode mode;
13249+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
13250+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1324113251
public std::optional<facebook::react::HighResDuration> windowSize;
1324213252
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1324313253
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1324413254
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
13255+
public ~TraceRecordingState() = default;
1324513256
}
1324613257

1324713258
template <typename T>

scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12824,11 +12824,17 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
1282412824
}
1282512825

1282612826
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
12827+
public HostTracingProfile() = default;
12828+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
12829+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1282712830
public facebook::react::HighResTimeStamp startTime;
12831+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
12832+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1282812833
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1282912834
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1283012835
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1283112836
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
12837+
public ~HostTracingProfile() = default;
1283212838
}
1283312839

1283412840
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -12921,12 +12927,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1292112927
}
1292212928

1292312929
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
12930+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1292412931
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories, std::optional<facebook::react::HighResDuration> windowSize = std::nullopt);
12932+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1292512933
public facebook::react::jsinspector_modern::tracing::Mode mode;
12934+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
12935+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1292612936
public std::optional<facebook::react::HighResDuration> windowSize;
1292712937
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1292812938
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1292912939
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
12940+
public ~TraceRecordingState() = default;
1293012941
}
1293112942

1293212943
template <typename T>

scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13002,11 +13002,17 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
1300213002
}
1300313003

1300413004
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
13005+
public HostTracingProfile() = default;
13006+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
13007+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1300513008
public facebook::react::HighResTimeStamp startTime;
13009+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
13010+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1300613011
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1300713012
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1300813013
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1300913014
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
13015+
public ~HostTracingProfile() = default;
1301013016
}
1301113017

1301213018
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -13099,12 +13105,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1309913105
}
1310013106

1310113107
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
13108+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1310213109
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::Mode tracingMode, std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories, std::optional<facebook::react::HighResDuration> windowSize = std::nullopt);
13110+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1310313111
public facebook::react::jsinspector_modern::tracing::Mode mode;
13112+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
13113+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1310413114
public std::optional<facebook::react::HighResDuration> windowSize;
1310513115
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1310613116
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1310713117
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
13118+
public ~TraceRecordingState() = default;
1310813119
}
1310913120

1311013121
template <typename T>

0 commit comments

Comments
 (0)