Skip to content

Commit a7810f6

Browse files
hoxyqfacebook-github-bot
authored andcommitted
Use std::optional instead of stub constexpr value for unset event start (#51252)
Summary: Pull Request resolved: #51252 # Changelog: [Internal] Removes usage of `DOM_HIGH_RES_TIME_STAMP_UNSET` stub contstexpr. Instead, all events that were using it will now declare timestamps as optional. This is the pre-requisite before migrating these raw `double` values to `HighResTimeStamp`. Reviewed By: javache Differential Revision: D74248998 fbshipit-source-id: 9ef223420823d036db815f956e91ff3a712c9833
1 parent 535150b commit a7810f6

File tree

6 files changed

+14
-12
lines changed

6 files changed

+14
-12
lines changed

packages/react-native/ReactCommon/react/renderer/core/EventLogger.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
#include <react/renderer/core/EventTarget.h>
1111
#include <react/timing/primitives.h>
12+
13+
#include <optional>
1214
#include <string_view>
1315

1416
namespace facebook::react {
@@ -32,8 +34,8 @@ class EventLogger {
3234
virtual EventTag onEventStart(
3335
std::string_view name,
3436
SharedEventTarget target,
35-
DOMHighResTimeStamp eventStartTimeStamp =
36-
DOM_HIGH_RES_TIME_STAMP_UNSET) = 0;
37+
std::optional<DOMHighResTimeStamp> eventStartTimeStamp =
38+
std::nullopt) = 0;
3739

3840
/*
3941
* Called when event starts getting dispatched (processed by the handlers, if

packages/react-native/ReactCommon/react/renderer/core/RawEvent.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
#pragma once
99

1010
#include <memory>
11+
#include <optional>
1112
#include <string>
1213

1314
#include <react/renderer/core/EventLogger.h>
@@ -86,7 +87,7 @@ struct RawEvent {
8687
// The client may specify a platform-specific timestamp for the event start
8788
// time, for example when MotionEvent was triggered on the Android native
8889
// side.
89-
DOMHighResTimeStamp eventStartTimeStamp{DOM_HIGH_RES_TIME_STAMP_UNSET};
90+
std::optional<DOMHighResTimeStamp> eventStartTimeStamp = std::nullopt;
9091
};
9192

9293
} // namespace facebook::react

packages/react-native/ReactCommon/react/renderer/core/tests/EventQueueProcessorTest.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ class MockEventLogger : public EventLogger {
2525
EventTag onEventStart(
2626
std::string_view /*name*/,
2727
SharedEventTarget /*target*/,
28-
DOMHighResTimeStamp /*eventStartTimeStamp*/) override {
28+
std::optional<DOMHighResTimeStamp> /*eventStartTimeStamp*/) override {
2929
return EMPTY_EVENT_TAG;
3030
}
3131
void onEventProcessingStart(EventTag /*tag*/) override {}

packages/react-native/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ EventPerformanceLogger::EventPerformanceLogger(
103103
EventTag EventPerformanceLogger::onEventStart(
104104
std::string_view name,
105105
SharedEventTarget target,
106-
DOMHighResTimeStamp eventStartTimeStamp) {
106+
std::optional<DOMHighResTimeStamp> eventStartTimeStamp) {
107107
auto performanceEntryReporter = performanceEntryReporter_.lock();
108108
if (performanceEntryReporter == nullptr) {
109109
return EMPTY_EVENT_TAG;
@@ -121,9 +121,9 @@ EventTag EventPerformanceLogger::onEventStart(
121121

122122
// The event start timestamp may be provided by the caller in order to
123123
// specify the platform specific event start time.
124-
auto timeStamp = eventStartTimeStamp == DOM_HIGH_RES_TIME_STAMP_UNSET
125-
? performanceEntryReporter->getCurrentTimeStamp()
126-
: eventStartTimeStamp;
124+
DOMHighResTimeStamp timeStamp = eventStartTimeStamp
125+
? *eventStartTimeStamp
126+
: performanceEntryReporter->getCurrentTimeStamp();
127127
{
128128
std::lock_guard lock(eventsInFlightMutex_);
129129
eventsInFlight_.emplace(

packages/react-native/ReactCommon/react/renderer/observers/events/EventPerformanceLogger.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <react/renderer/uimanager/UIManagerMountHook.h>
1414
#include <memory>
1515
#include <mutex>
16+
#include <optional>
1617
#include <string_view>
1718
#include <unordered_map>
1819

@@ -30,8 +31,8 @@ class EventPerformanceLogger : public EventLogger,
3031
EventTag onEventStart(
3132
std::string_view name,
3233
SharedEventTarget target,
33-
DOMHighResTimeStamp eventStartTimeStamp =
34-
DOM_HIGH_RES_TIME_STAMP_UNSET) override;
34+
std::optional<DOMHighResTimeStamp> eventStartTimeStamp =
35+
std::nullopt) override;
3536
void onEventProcessingStart(EventTag tag) override;
3637
void onEventProcessingEnd(EventTag tag) override;
3738

packages/react-native/ReactCommon/react/timing/primitives.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@ namespace facebook::react {
1717
// not necessary in React Native.
1818
using DOMHighResTimeStamp = double;
1919

20-
constexpr DOMHighResTimeStamp DOM_HIGH_RES_TIME_STAMP_UNSET = -1.0;
21-
2220
inline DOMHighResTimeStamp chronoToDOMHighResTimeStamp(
2321
std::chrono::steady_clock::duration duration) {
2422
return static_cast<std::chrono::duration<double, std::milli>>(duration)

0 commit comments

Comments
 (0)