Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,16 @@ tracing::HostTracingProfile HostTargetTraceRecording::stop() {
auto startTime = *startTime_;
startTime_.reset();

return tracing::HostTracingProfile{
.processId = oscompat::getCurrentProcessId(),
.startTime = startTime,
.frameTimings = frameTimings_.pruneExpiredAndExtract(),
.instanceTracingProfiles = std::move(state.instanceTracingProfiles),
.runtimeSamplingProfiles = std::move(state.runtimeSamplingProfiles),
};
// Member-wise assignment instead of designated initializers:
// HostTracingProfile declares its special members (move-only) and is no
// longer an aggregate.
tracing::HostTracingProfile profile;
profile.processId = oscompat::getCurrentProcessId();
profile.startTime = startTime;
profile.frameTimings = frameTimings_.pruneExpiredAndExtract();
profile.instanceTracingProfiles = std::move(state.instanceTracingProfiles);
profile.runtimeSamplingProfiles = std::move(state.runtimeSamplingProfiles);
return profile;
}

void HostTargetTraceRecording::recordFrameTimings(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,18 @@ namespace facebook::react::jsinspector_modern::tracing {
* messages.
*/
struct HostTracingProfile {
HostTracingProfile() = default;

// Explicitly move-only: FrameTimingSequence and RuntimeSamplingProfile are
// not copyable, so the implicit copy constructor is ill-formed the moment it
// is instantiated. Plain C++ never instantiates it, but Swift's C++ interop
// does when these headers are reached from an imported module, turning it
// into a hard compile error (Xcode 26.3).
HostTracingProfile(const HostTracingProfile &) = delete;
HostTracingProfile &operator=(const HostTracingProfile &) = delete;
HostTracingProfile(HostTracingProfile &&) = default;
HostTracingProfile &operator=(HostTracingProfile &&) = default;

// The ID of the OS-level process that this Trace Recording is associated
// with.
ProcessId processId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,16 @@ struct TraceRecordingState {
{
}

// Explicitly move-only: RuntimeSamplingProfile is not copyable, so the
// implicit copy constructor is ill-formed the moment it is instantiated.
// Plain C++ never instantiates it, but Swift's C++ interop (ClangImporter)
// does when a consumer imports these headers as part of a module, turning
// it into a hard compile error (Xcode 26.3).
TraceRecordingState(const TraceRecordingState &) = delete;
TraceRecordingState &operator=(const TraceRecordingState &) = delete;
TraceRecordingState(TraceRecordingState &&) = default;
TraceRecordingState &operator=(TraceRecordingState &&) = default;

// The mode of this Trace Recording.
tracing::Mode mode;

Expand Down
9 changes: 9 additions & 0 deletions scripts/cxx-api/api-snapshots/ReactAndroidDebugCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -11322,7 +11322,12 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
}

struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
public HostTracingProfile() = default;
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::HighResTimeStamp startTime;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down Expand Up @@ -11419,8 +11424,12 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
}

struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
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);
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public facebook::react::jsinspector_modern::tracing::Mode mode;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public std::optional<facebook::react::HighResDuration> windowSize;
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down
9 changes: 9 additions & 0 deletions scripts/cxx-api/api-snapshots/ReactAndroidNewarchCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -10945,7 +10945,12 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
}

struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
public HostTracingProfile() = default;
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::HighResTimeStamp startTime;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down Expand Up @@ -11042,8 +11047,12 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
}

struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
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);
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public facebook::react::jsinspector_modern::tracing::Mode mode;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public std::optional<facebook::react::HighResDuration> windowSize;
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down
9 changes: 9 additions & 0 deletions scripts/cxx-api/api-snapshots/ReactAndroidReleaseCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -11175,7 +11175,12 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
}

struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
public HostTracingProfile() = default;
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::HighResTimeStamp startTime;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down Expand Up @@ -11272,8 +11277,12 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
}

struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
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);
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public facebook::react::jsinspector_modern::tracing::Mode mode;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public std::optional<facebook::react::HighResDuration> windowSize;
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down
9 changes: 9 additions & 0 deletions scripts/cxx-api/api-snapshots/ReactAppleDebugCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -13159,7 +13159,12 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
}

struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
public HostTracingProfile() = default;
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::HighResTimeStamp startTime;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down Expand Up @@ -13256,8 +13261,12 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
}

struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
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);
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public facebook::react::jsinspector_modern::tracing::Mode mode;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public std::optional<facebook::react::HighResDuration> windowSize;
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down
9 changes: 9 additions & 0 deletions scripts/cxx-api/api-snapshots/ReactAppleNewarchCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -12844,7 +12844,12 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
}

struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
public HostTracingProfile() = default;
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::HighResTimeStamp startTime;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down Expand Up @@ -12941,8 +12946,12 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
}

struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
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);
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public facebook::react::jsinspector_modern::tracing::Mode mode;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public std::optional<facebook::react::HighResDuration> windowSize;
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down
9 changes: 9 additions & 0 deletions scripts/cxx-api/api-snapshots/ReactAppleReleaseCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -13022,7 +13022,12 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
}

struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
public HostTracingProfile() = default;
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::HighResTimeStamp startTime;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down Expand Up @@ -13119,8 +13124,12 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
}

struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
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);
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public facebook::react::jsinspector_modern::tracing::Mode mode;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public std::optional<facebook::react::HighResDuration> windowSize;
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down
9 changes: 9 additions & 0 deletions scripts/cxx-api/api-snapshots/ReactCommonDebugCxx.api
Original file line number Diff line number Diff line change
Expand Up @@ -8314,7 +8314,12 @@ struct facebook::react::jsinspector_modern::tracing::FrameTimingSequence {
}

struct facebook::react::jsinspector_modern::tracing::HostTracingProfile {
public HostTracingProfile() = default;
public HostTracingProfile(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public HostTracingProfile(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::HighResTimeStamp startTime;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(const facebook::react::jsinspector_modern::tracing::HostTracingProfile&) = delete;
public facebook::react::jsinspector_modern::tracing::HostTracingProfile& operator=(facebook::react::jsinspector_modern::tracing::HostTracingProfile&&) = default;
public facebook::react::jsinspector_modern::tracing::ProcessId processId;
public std::vector<facebook::react::jsinspector_modern::tracing::FrameTimingSequence> frameTimings;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down Expand Up @@ -8411,8 +8416,12 @@ struct facebook::react::jsinspector_modern::tracing::TraceEventProfileChunk::CPU
}

struct facebook::react::jsinspector_modern::tracing::TraceRecordingState {
public TraceRecordingState(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
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);
public TraceRecordingState(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public facebook::react::jsinspector_modern::tracing::Mode mode;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(const facebook::react::jsinspector_modern::tracing::TraceRecordingState&) = delete;
public facebook::react::jsinspector_modern::tracing::TraceRecordingState& operator=(facebook::react::jsinspector_modern::tracing::TraceRecordingState&&) = default;
public std::optional<facebook::react::HighResDuration> windowSize;
public std::set<facebook::react::jsinspector_modern::tracing::Category> enabledCategories;
public std::vector<facebook::react::jsinspector_modern::tracing::InstanceTracingProfile> instanceTracingProfiles;
Expand Down
Loading
Loading