Skip to content

Commit 3861118

Browse files
chrfalchmeta-codesync[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 c4b92cf commit 3861118

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
@@ -11322,11 +11322,17 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
1132211322
}
1132311323

1132411324
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
11325+
public HostTracingProfile() = default;
11326+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
11327+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1132511328
public facebook::react::HighResTimeStamp startTime;
11329+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
11330+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1132611331
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1132711332
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1132811333
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1132911334
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11335+
public ~HostTracingProfile() = default;
1133011336
}
1133111337

1133211338
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -11419,12 +11425,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1141911425
}
1142011426

1142111427
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
11428+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1142211429
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);
11430+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1142311431
public facebook::react::jsinspector_modern::tracing::Mode mode;
11432+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
11433+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1142411434
public std::optional<facebook::react::HighResDuration> windowSize;
1142511435
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1142611436
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1142711437
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11438+
public ~TraceRecordingState() = default;
1142811439
}
1142911440

1143011441
template <typename T>

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

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

1094710947
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
10948+
public HostTracingProfile() = default;
10949+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
10950+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1094810951
public facebook::react::HighResTimeStamp startTime;
10952+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
10953+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1094910954
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1095010955
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1095110956
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1095210957
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
10958+
public ~HostTracingProfile() = default;
1095310959
}
1095410960

1095510961
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -11042,12 +11048,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1104211048
}
1104311049

1104411050
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
11051+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1104511052
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);
11053+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1104611054
public facebook::react::jsinspector_modern::tracing::Mode mode;
11055+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
11056+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1104711057
public std::optional<facebook::react::HighResDuration> windowSize;
1104811058
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1104911059
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1105011060
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11061+
public ~TraceRecordingState() = default;
1105111062
}
1105211063

1105311064
template <typename T>

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

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

1117711177
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
11178+
public HostTracingProfile() = default;
11179+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
11180+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1117811181
public facebook::react::HighResTimeStamp startTime;
11182+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
11183+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1117911184
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1118011185
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1118111186
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1118211187
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11188+
public ~HostTracingProfile() = default;
1118311189
}
1118411190

1118511191
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -11272,12 +11278,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1127211278
}
1127311279

1127411280
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
11281+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1127511282
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);
11283+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1127611284
public facebook::react::jsinspector_modern::tracing::Mode mode;
11285+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
11286+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1127711287
public std::optional<facebook::react::HighResDuration> windowSize;
1127811288
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1127911289
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1128011290
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
11291+
public ~TraceRecordingState() = default;
1128111292
}
1128211293

1128311294
template <typename T>

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

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

1316113161
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
13162+
public HostTracingProfile() = default;
13163+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
13164+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1316213165
public facebook::react::HighResTimeStamp startTime;
13166+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
13167+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1316313168
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1316413169
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1316513170
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1316613171
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
13172+
public ~HostTracingProfile() = default;
1316713173
}
1316813174

1316913175
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -13256,12 +13262,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1325613262
}
1325713263

1325813264
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
13265+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1325913266
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);
13267+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1326013268
public facebook::react::jsinspector_modern::tracing::Mode mode;
13269+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
13270+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1326113271
public std::optional<facebook::react::HighResDuration> windowSize;
1326213272
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1326313273
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1326413274
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
13275+
public ~TraceRecordingState() = default;
1326513276
}
1326613277

1326713278
template <typename T>

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

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

1284612846
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
12847+
public HostTracingProfile() = default;
12848+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
12849+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1284712850
public facebook::react::HighResTimeStamp startTime;
12851+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
12852+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1284812853
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1284912854
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1285012855
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1285112856
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
12857+
public ~HostTracingProfile() = default;
1285212858
}
1285312859

1285412860
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -12941,12 +12947,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1294112947
}
1294212948

1294312949
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
12950+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1294412951
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);
12952+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1294512953
public facebook::react::jsinspector_modern::tracing::Mode mode;
12954+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
12955+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1294612956
public std::optional<facebook::react::HighResDuration> windowSize;
1294712957
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1294812958
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1294912959
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
12960+
public ~TraceRecordingState() = default;
1295012961
}
1295112962

1295212963
template <typename T>

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

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

1302413024
struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
13025+
public HostTracingProfile() = default;
13026+
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
13027+
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1302513028
public facebook::react::HighResTimeStamp startTime;
13029+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
13030+
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
1302613031
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
1302713032
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
1302813033
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1302913034
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
13035+
public ~HostTracingProfile() = default;
1303013036
}
1303113037

1303213038
struct facebook::react::jsinspector_modern::tracing::IdGenerator {
@@ -13119,12 +13125,17 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
1311913125
}
1312013126

1312113127
struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
13128+
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
1312213129
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);
13130+
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1312313131
public facebook::react::jsinspector_modern::tracing::Mode mode;
13132+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
13133+
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
1312413134
public std::optional<facebook::react::HighResDuration> windowSize;
1312513135
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
1312613136
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
1312713137
public std::vector<facebook::react::jsinspector_modern::tracing::RuntimeSamplingProfile> runtimeSamplingProfiles;
13138+
public ~TraceRecordingState() = default;
1312813139
}
1312913140

1313013141
template <typename T>

0 commit comments

Comments
 (0)