diff --git a/ReactAndroid/src/main/jni/react/jni/AndroidJSCFactory.cpp b/ReactAndroid/src/main/jni/react/jni/AndroidJSCFactory.cpp index 0aba406fc24b86..52924b641362b4 100644 --- a/ReactAndroid/src/main/jni/react/jni/AndroidJSCFactory.cpp +++ b/ReactAndroid/src/main/jni/react/jni/AndroidJSCFactory.cpp @@ -13,7 +13,6 @@ #include "JSCPerfLogging.h" #include "JSLogging.h" -#include "ReactMarker.h" using namespace facebook::jni; @@ -22,6 +21,53 @@ namespace react { namespace { +class JReactMarker : public JavaClass { + public: + static constexpr auto kJavaDescriptor = "Lcom/facebook/react/bridge/ReactMarker;"; + + static void logMarker(const std::string& marker) { + static auto cls = javaClassStatic(); + static auto meth = cls->getStaticMethod("logMarker"); + meth(cls, marker); + } + + static void logMarker(const std::string& marker, const std::string& tag) { + static auto cls = javaClassStatic(); + static auto meth = cls->getStaticMethod("logMarker"); + meth(cls, marker, tag); + } +}; + +void logPerfMarker(const ReactMarker::ReactMarkerId markerId, const char* tag) { + switch (markerId) { + case ReactMarker::RUN_JS_BUNDLE_START: + JReactMarker::logMarker("RUN_JS_BUNDLE_START", tag); + break; + case ReactMarker::RUN_JS_BUNDLE_STOP: + JReactMarker::logMarker("RUN_JS_BUNDLE_END", tag); + break; + case ReactMarker::CREATE_REACT_CONTEXT_STOP: + JReactMarker::logMarker("CREATE_REACT_CONTEXT_END"); + break; + case ReactMarker::JS_BUNDLE_STRING_CONVERT_START: + JReactMarker::logMarker("loadApplicationScript_startStringConvert"); + break; + case ReactMarker::JS_BUNDLE_STRING_CONVERT_STOP: + JReactMarker::logMarker("loadApplicationScript_endStringConvert"); + break; + case ReactMarker::NATIVE_MODULE_SETUP_START: + JReactMarker::logMarker("NATIVE_MODULE_SETUP_START", tag); + break; + case ReactMarker::NATIVE_MODULE_SETUP_STOP: + JReactMarker::logMarker("NATIVE_MODULE_SETUP_END", tag); + break; + case ReactMarker::NATIVE_REQUIRE_START: + case ReactMarker::NATIVE_REQUIRE_STOP: + // These are not used on Android. + break; + } +} + ExceptionHandling::ExtractedEror extractJniError(const std::exception& ex, const char *context) { auto jniEx = dynamic_cast(&ex); if (!jniEx) { @@ -80,7 +126,7 @@ namespace detail { void injectJSCExecutorAndroidPlatform() { // Inject some behavior into react/ - JReactMarker::setLogPerfMarkerIfNeeded(); + ReactMarker::logTaggedMarker = logPerfMarker; ExceptionHandling::platformErrorExtractor = extractJniError; JSCNativeHooks::loggingHook = nativeLoggingHook; JSCNativeHooks::nowHook = nativePerformanceNow; diff --git a/ReactAndroid/src/main/jni/react/jni/BUCK b/ReactAndroid/src/main/jni/react/jni/BUCK index 32878cae633d41..36f6faabae55df 100644 --- a/ReactAndroid/src/main/jni/react/jni/BUCK +++ b/ReactAndroid/src/main/jni/react/jni/BUCK @@ -13,7 +13,6 @@ EXPORTED_HEADERS = [ "NativeArray.h", "NativeCommon.h", "NativeMap.h", - "ReactMarker.h", "ReadableNativeArray.h", "ReadableNativeMap.h", "WritableNativeArray.h", diff --git a/ReactAndroid/src/main/jni/react/jni/ReactMarker.cpp b/ReactAndroid/src/main/jni/react/jni/ReactMarker.cpp deleted file mode 100644 index c4680eedff2495..00000000000000 --- a/ReactAndroid/src/main/jni/react/jni/ReactMarker.cpp +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright 2004-present Facebook. All Rights Reserved. - -#include "ReactMarker.h" -#include -#include -#include -#include - -namespace facebook { -namespace react { - -void JReactMarker::setLogPerfMarkerIfNeeded() { - static std::once_flag flag {}; - std::call_once(flag, [](){ - ReactMarker::logTaggedMarker = JReactMarker::logPerfMarker; - }); -} - -void JReactMarker::logMarker(const std::string& marker) { - static auto cls = javaClassStatic(); - static auto meth = cls->getStaticMethod("logMarker"); - meth(cls, marker); -} - -void JReactMarker::logMarker(const std::string& marker, const std::string& tag) { - static auto cls = javaClassStatic(); - static auto meth = cls->getStaticMethod("logMarker"); - meth(cls, marker, tag); -} - -void JReactMarker::logPerfMarker(const ReactMarker::ReactMarkerId markerId, const char* tag) { - switch (markerId) { - case ReactMarker::RUN_JS_BUNDLE_START: - JReactMarker::logMarker("RUN_JS_BUNDLE_START", tag); - break; - case ReactMarker::RUN_JS_BUNDLE_STOP: - JReactMarker::logMarker("RUN_JS_BUNDLE_END", tag); - break; - case ReactMarker::CREATE_REACT_CONTEXT_STOP: - JReactMarker::logMarker("CREATE_REACT_CONTEXT_END"); - break; - case ReactMarker::JS_BUNDLE_STRING_CONVERT_START: - JReactMarker::logMarker("loadApplicationScript_startStringConvert"); - break; - case ReactMarker::JS_BUNDLE_STRING_CONVERT_STOP: - JReactMarker::logMarker("loadApplicationScript_endStringConvert"); - break; - case ReactMarker::NATIVE_MODULE_SETUP_START: - JReactMarker::logMarker("NATIVE_MODULE_SETUP_START", tag); - break; - case ReactMarker::NATIVE_MODULE_SETUP_STOP: - JReactMarker::logMarker("NATIVE_MODULE_SETUP_END", tag); - break; - case ReactMarker::NATIVE_REQUIRE_START: - case ReactMarker::NATIVE_REQUIRE_STOP: - // These are not used on Android. - break; - } -} - -} -} diff --git a/ReactAndroid/src/main/jni/react/jni/ReactMarker.h b/ReactAndroid/src/main/jni/react/jni/ReactMarker.h deleted file mode 100644 index 7f918c77cbcf1d..00000000000000 --- a/ReactAndroid/src/main/jni/react/jni/ReactMarker.h +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright 2004-present Facebook. All Rights Reserved. - -#pragma once - -#include -#include -#include - -namespace facebook { -namespace react { - -class JReactMarker : public facebook::jni::JavaClass { -public: - static constexpr auto kJavaDescriptor = "Lcom/facebook/react/bridge/ReactMarker;"; - static void setLogPerfMarkerIfNeeded(); - -private: - static void logMarker(const std::string& marker); - static void logMarker(const std::string& marker, const std::string& tag); - static void logPerfMarker(const ReactMarker::ReactMarkerId markerId, const char* tag); -}; - -} -}