diff --git a/ReactAndroid/build.gradle b/ReactAndroid/build.gradle index 5f5ba755ce0..361ce74ed45 100644 --- a/ReactAndroid/build.gradle +++ b/ReactAndroid/build.gradle @@ -114,7 +114,7 @@ task prepareGlog(dependsOn: downloadGlog, type: Copy) { task downloadJSCHeaders(type: Download) { def jscAPIBaseURL = 'https://svn.webkit.org/repository/webkit/!svn/bc/174650/trunk/Source/JavaScriptCore/API/' - def jscHeaderFiles = ['JSBase.h', 'JSContextRef.h', 'JSObjectRef.h', 'JSRetainPtr.h', 'JSStringRef.h', 'JSValueRef.h', 'WebKitAvailability.h'] + def jscHeaderFiles = ['JavaScript.h', 'JSBase.h', 'JSContextRef.h', 'JSObjectRef.h', 'JSRetainPtr.h', 'JSStringRef.h', 'JSValueRef.h', 'WebKitAvailability.h'] def output = new File(downloadsDir, 'jsc') output.mkdirs() src(jscHeaderFiles.collect { headerName -> "$jscAPIBaseURL$headerName" }) @@ -185,7 +185,7 @@ def getNdkBuildFullPath() { } task buildReactNdkLib(dependsOn: [prepareJSC, prepareBoost, prepareDoubleConversion, prepareFolly, prepareGlog], type: Exec) { - inputs.file('src/main/jni/react') + inputs.file('src/main/jni/xreact') outputs.dir("$buildDir/react-ndk/all") commandLine getNdkBuildFullPath(), 'NDK_PROJECT_PATH=null', @@ -193,7 +193,8 @@ task buildReactNdkLib(dependsOn: [prepareJSC, prepareBoost, prepareDoubleConvers 'NDK_OUT=' + temporaryDir, "NDK_LIBS_OUT=$buildDir/react-ndk/all", "THIRD_PARTY_NDK_DIR=$buildDir/third-party-ndk", - '-C', file('src/main/jni/react/jni').absolutePath, + "REACT_COMMON_DIR=$projectDir/../ReactCommon", + '-C', file('src/main/jni/xreact/jni').absolutePath, '--jobs', project.hasProperty("jobs") ? project.property("jobs") : Runtime.runtime.availableProcessors() } diff --git a/ReactAndroid/src/main/jni/Application.mk b/ReactAndroid/src/main/jni/Application.mk index f403e5ba18a..2a1e94dc049 100644 --- a/ReactAndroid/src/main/jni/Application.mk +++ b/ReactAndroid/src/main/jni/Application.mk @@ -5,7 +5,7 @@ APP_PLATFORM := android-9 APP_MK_DIR := $(dir $(lastword $(MAKEFILE_LIST))) -NDK_MODULE_PATH := $(APP_MK_DIR)$(HOST_DIRSEP)$(THIRD_PARTY_NDK_DIR)$(HOST_DIRSEP)$(APP_MK_DIR)first-party +NDK_MODULE_PATH := $(APP_MK_DIR)$(HOST_DIRSEP)$(THIRD_PARTY_NDK_DIR)$(HOST_DIRSEP)$(REACT_COMMON_DIR)$(HOST_DIRSEP)$(APP_MK_DIR)first-party APP_STL := gnustl_shared diff --git a/ReactAndroid/src/main/jni/first-party/fb/Android.mk b/ReactAndroid/src/main/jni/first-party/fb/Android.mk index 510d07018d0..6eb6eeab9d7 100644 --- a/ReactAndroid/src/main/jni/first-party/fb/Android.mk +++ b/ReactAndroid/src/main/jni/first-party/fb/Android.mk @@ -1,4 +1,5 @@ -LOCAL_PATH:= $(call my-dir) +LOCAL_PATH := $(call my-dir) + include $(CLEAR_VARS) LOCAL_SRC_FILES:= \ diff --git a/ReactAndroid/src/main/jni/react/Android.mk b/ReactAndroid/src/main/jni/react/Android.mk index 9c5498da974..311dff6b38b 100644 --- a/ReactAndroid/src/main/jni/react/Android.mk +++ b/ReactAndroid/src/main/jni/react/Android.mk @@ -1,4 +1,4 @@ -LOCAL_PATH:= $(call my-dir) +LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) @@ -18,7 +18,6 @@ LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES) LOCAL_CFLAGS := \ -DLOG_TAG=\"ReactNative\" -LOCAL_LDLIBS += -landroid LOCAL_CFLAGS += -Wall -Werror -fexceptions -frtti CXX11_FLAGS := -std=c++11 LOCAL_CFLAGS += $(CXX11_FLAGS) diff --git a/ReactAndroid/src/main/jni/react/jni/Android.mk b/ReactAndroid/src/main/jni/react/jni/Android.mk index 0fabec805d2..42e43e8ce81 100644 --- a/ReactAndroid/src/main/jni/react/jni/Android.mk +++ b/ReactAndroid/src/main/jni/react/jni/Android.mk @@ -2,20 +2,21 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -LOCAL_MODULE := reactnativejni +LOCAL_MODULE := libreactnativejni LOCAL_SRC_FILES := \ JExecutorToken.cpp \ JMessageQueueThread.cpp \ + JniJSModulesUnbundle.cpp \ JSCPerfLogging.cpp \ JSLoader.cpp \ JSLogging.cpp \ - JniJSModulesUnbundle.cpp \ NativeArray.cpp \ OnLoad.cpp \ ProxyExecutor.cpp \ LOCAL_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../.. $(LOCAL_PATH)/.. LOCAL_CFLAGS += -Wall -Werror -fvisibility=hidden -fexceptions -frtti CXX11_FLAGS := -std=c++11 diff --git a/ReactAndroid/src/main/jni/react/test/Android.mk b/ReactAndroid/src/main/jni/react/test/Android.mk index 87d0480b3ce..3bd10a2b002 100644 --- a/ReactAndroid/src/main/jni/react/test/Android.mk +++ b/ReactAndroid/src/main/jni/react/test/Android.mk @@ -24,4 +24,3 @@ LOCAL_LDFLAGS += $(BUCK_DEP_LDFLAGS) include $(BUILD_EXECUTABLE) $(call import-module,react) -$(call import-module,google-test) diff --git a/ReactAndroid/src/main/jni/third-party/folly/Android.mk b/ReactAndroid/src/main/jni/third-party/folly/Android.mk index 4cabadccb83..dd3a3af807a 100644 --- a/ReactAndroid/src/main/jni/third-party/folly/Android.mk +++ b/ReactAndroid/src/main/jni/third-party/folly/Android.mk @@ -5,6 +5,7 @@ LOCAL_SRC_FILES:= \ folly/json.cpp \ folly/Unicode.cpp \ folly/Conv.cpp \ + folly/Demangle.cpp \ folly/detail/FunctionalExcept.cpp \ folly/detail/MallocImpl.cpp \ folly/StringBase.cpp \ diff --git a/ReactAndroid/src/main/jni/xreact/Android.mk b/ReactAndroid/src/main/jni/xreact/Android.mk new file mode 100644 index 00000000000..4491326e1c0 --- /dev/null +++ b/ReactAndroid/src/main/jni/xreact/Android.mk @@ -0,0 +1,40 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := reactnativejnifb + +LOCAL_SRC_FILES := \ + CatalystInstanceImpl.cpp \ + CxxModuleWrapper.cpp \ + JExecutorToken.cpp \ + JMessageQueueThread.cpp \ + JniJSModulesUnbundle.cpp \ + JSCPerfLogging.cpp \ + JSLoader.cpp \ + JSLogging.cpp \ + MethodInvoker.cpp \ + ModuleRegistryHolder.cpp \ + OnLoad.cpp \ + ProxyExecutor.cpp \ + +LOCAL_C_INCLUDES := $(LOCAL_PATH) +LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../ + +LOCAL_CFLAGS += -Wall -Werror -fvisibility=hidden -fexceptions -frtti +CXX11_FLAGS := -std=c++11 +LOCAL_CFLAGS += $(CXX11_FLAGS) +LOCAL_EXPORT_CPPFLAGS := $(CXX11_FLAGS) + +LOCAL_LDLIBS += -landroid +LOCAL_SHARED_LIBRARIES := libfolly_json libfbjni libjsc libglog_init libreactnativejni +LOCAL_STATIC_LIBRARIES := libreactnative libreactnativefb + +include $(BUILD_SHARED_LIBRARY) + +$(call import-module,cxxreact) +$(call import-module,jsc) +$(call import-module,folly) +$(call import-module,fbgloginit) +$(call import-module,jni) +$(call import-module,react) diff --git a/ReactAndroid/src/main/jni/xreact/jni/Android.mk b/ReactAndroid/src/main/jni/xreact/jni/Android.mk new file mode 100644 index 00000000000..c0078c36a8a --- /dev/null +++ b/ReactAndroid/src/main/jni/xreact/jni/Android.mk @@ -0,0 +1,40 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := libreactnativejnifb + +LOCAL_SRC_FILES := \ + CatalystInstanceImpl.cpp \ + CxxModuleWrapper.cpp \ + JExecutorToken.cpp \ + JMessageQueueThread.cpp \ + JniJSModulesUnbundle.cpp \ + JSCPerfLogging.cpp \ + JSLoader.cpp \ + JSLogging.cpp \ + MethodInvoker.cpp \ + ModuleRegistryHolder.cpp \ + OnLoad.cpp \ + ProxyExecutor.cpp \ + +LOCAL_C_INCLUDES := $(LOCAL_PATH) +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../.. + +LOCAL_CFLAGS += -Wall -Werror -fvisibility=hidden -fexceptions -frtti +CXX11_FLAGS := -std=c++11 +LOCAL_CFLAGS += $(CXX11_FLAGS) +LOCAL_EXPORT_CPPFLAGS := $(CXX11_FLAGS) + +LOCAL_LDLIBS += -landroid +LOCAL_SHARED_LIBRARIES := libfolly_json libfbjni libjsc libglog_init libreactnativejni +LOCAL_STATIC_LIBRARIES := libreactnativefb + +include $(BUILD_SHARED_LIBRARY) + +$(call import-module,cxxreact) +$(call import-module,jsc) +$(call import-module,folly) +$(call import-module,fbgloginit) +$(call import-module,jsc) +$(call import-module,react/jni) diff --git a/ReactAndroid/src/main/jni/xreact/jni/BUCK b/ReactAndroid/src/main/jni/xreact/jni/BUCK index 57b172b4a9a..ea88102d01c 100644 --- a/ReactAndroid/src/main/jni/xreact/jni/BUCK +++ b/ReactAndroid/src/main/jni/xreact/jni/BUCK @@ -18,8 +18,8 @@ cxx_library( '//xplat/folly:molly', '//xplat/fbsystrace:fbsystrace', react_native_target('jni/react/jni:jni'), - react_native_xplat_target('bridge:bridge'), - react_native_xplat_target('bridge:module'), + react_native_xplat_target('cxxreact:bridge'), + react_native_xplat_target('cxxreact:module'), ], srcs = glob(['*.cpp']), exported_headers = EXPORTED_HEADERS, diff --git a/ReactAndroid/src/main/jni/xreact/jni/CxxModuleWrapper.cpp b/ReactAndroid/src/main/jni/xreact/jni/CxxModuleWrapper.cpp index f0c3e4c0eac..d1532fd10dd 100644 --- a/ReactAndroid/src/main/jni/xreact/jni/CxxModuleWrapper.cpp +++ b/ReactAndroid/src/main/jni/xreact/jni/CxxModuleWrapper.cpp @@ -10,6 +10,7 @@ #include #include +#include #include @@ -190,7 +191,7 @@ std::string CxxModuleWrapper::getConstantsJson() { constsobject.insert(std::move(c.first), std::move(c.second)); } - return folly::toJson(constsobject); + return facebook::react::detail::toStdString(folly::toJson(constsobject)); } jobject CxxModuleWrapper::getMethods() { diff --git a/ReactAndroid/src/main/jni/xreact/jni/MethodInvoker.cpp b/ReactAndroid/src/main/jni/xreact/jni/MethodInvoker.cpp index 8c304378dc3..5dcfd3e62b3 100644 --- a/ReactAndroid/src/main/jni/xreact/jni/MethodInvoker.cpp +++ b/ReactAndroid/src/main/jni/xreact/jni/MethodInvoker.cpp @@ -137,7 +137,7 @@ jvalue extract(std::weak_ptr& instance, ExecutorToken token, char type value.l = valueOf(extractDouble(arg)); break; case 'S': - value.l = jni::make_jstring(arg.getString()).release(); + value.l = jni::make_jstring(arg.getString().c_str()).release(); break; case 'A': value.l = ReadableNativeArray::newObjectCxxArgs(arg).release(); diff --git a/ReactAndroid/src/main/jni/xreact/jni/ModuleRegistryHolder.h b/ReactAndroid/src/main/jni/xreact/jni/ModuleRegistryHolder.h index 40a1143636a..565d9e76941 100644 --- a/ReactAndroid/src/main/jni/xreact/jni/ModuleRegistryHolder.h +++ b/ReactAndroid/src/main/jni/xreact/jni/ModuleRegistryHolder.h @@ -5,7 +5,7 @@ #include #include -#include +#include "CxxModuleWrapper.h" namespace facebook { namespace react { diff --git a/ReactAndroid/src/main/jni/xreact/jni/ProxyExecutor.cpp b/ReactAndroid/src/main/jni/xreact/jni/ProxyExecutor.cpp index 659c9f84186..78461872601 100644 --- a/ReactAndroid/src/main/jni/xreact/jni/ProxyExecutor.cpp +++ b/ReactAndroid/src/main/jni/xreact/jni/ProxyExecutor.cpp @@ -10,6 +10,7 @@ #include #include +#include namespace facebook { namespace react { @@ -56,7 +57,7 @@ ProxyExecutor::ProxyExecutor(jni::global_ref&& executorInstance, SystraceSection t("setGlobalVariable"); setGlobalVariable( "__fbBatchedBridgeConfig", - folly::make_unique(folly::toJson(config))); + folly::make_unique(detail::toStdString(folly::toJson(config)))); } ProxyExecutor::~ProxyExecutor() { diff --git a/ReactAndroid/src/main/jni/xreact/perftests/BUCK b/ReactAndroid/src/main/jni/xreact/perftests/BUCK index d111fa39417..a80f52b229c 100644 --- a/ReactAndroid/src/main/jni/xreact/perftests/BUCK +++ b/ReactAndroid/src/main/jni/xreact/perftests/BUCK @@ -8,10 +8,10 @@ cxx_library( '-fexceptions', ], deps = [ - '//native:base', '//native/fb:fb', + '//native:base', '//xplat/folly:molly', - react_native_xplat_target('bridge:module'), + react_native_xplat_target('cxxreact:module'), ], visibility = [ '//instrumentation_tests/com/facebook/react/...', diff --git a/ReactCommon/cxxreact/Android.mk b/ReactCommon/cxxreact/Android.mk new file mode 100644 index 00000000000..985cc035752 --- /dev/null +++ b/ReactCommon/cxxreact/Android.mk @@ -0,0 +1,41 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) + +LOCAL_MODULE := libreactnativefb + +LOCAL_SRC_FILES := \ + Instance.cpp \ + JSCExecutor.cpp \ + JSCHelpers.cpp \ + JSCLegacyProfiler.cpp \ + JSCLegacyTracing.cpp \ + JSCMemory.cpp \ + JSCPerfStats.cpp \ + JSCTracing.cpp \ + JSCWebWorker.cpp \ + MethodCall.cpp \ + ModuleRegistry.cpp \ + NativeToJsBridge.cpp \ + Platform.cpp \ + Value.cpp \ + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/.. +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES) + +LOCAL_CFLAGS := \ + -DLOG_TAG=\"ReactNative\" + +LOCAL_CFLAGS += -Wall -Werror -fexceptions -frtti +CXX11_FLAGS := -std=c++11 +LOCAL_CFLAGS += $(CXX11_FLAGS) +LOCAL_EXPORT_CPPFLAGS := $(CXX11_FLAGS) + +LOCAL_SHARED_LIBRARIES := libfb libfolly_json libjsc libglog + +include $(BUILD_STATIC_LIBRARY) + +$(call import-module,fb) +$(call import-module,folly) +$(call import-module,jsc) +$(call import-module,glog) diff --git a/ReactCommon/bridge/BUCK b/ReactCommon/cxxreact/BUCK similarity index 99% rename from ReactCommon/bridge/BUCK rename to ReactCommon/cxxreact/BUCK index cff2c6c6962..43e52bbdc18 100644 --- a/ReactCommon/bridge/BUCK +++ b/ReactCommon/cxxreact/BUCK @@ -56,13 +56,14 @@ elif THIS_IS_FBOBJC: cxx_library( name = 'module', - header_namespace = 'cxxreact', force_static = True, exported_headers = [ 'CxxModule.h', + 'FollySupport.h', 'JsArgumentHelpers.h', 'JsArgumentHelpers-inl.h', ], + header_namespace = 'cxxreact', deps = [ '//xplat/folly:molly', ], diff --git a/ReactCommon/bridge/CxxModule.h b/ReactCommon/cxxreact/CxxModule.h similarity index 100% rename from ReactCommon/bridge/CxxModule.h rename to ReactCommon/cxxreact/CxxModule.h diff --git a/ReactCommon/bridge/Executor.h b/ReactCommon/cxxreact/Executor.h similarity index 100% rename from ReactCommon/bridge/Executor.h rename to ReactCommon/cxxreact/Executor.h diff --git a/ReactCommon/bridge/ExecutorToken.h b/ReactCommon/cxxreact/ExecutorToken.h similarity index 100% rename from ReactCommon/bridge/ExecutorToken.h rename to ReactCommon/cxxreact/ExecutorToken.h diff --git a/ReactCommon/bridge/ExecutorTokenFactory.h b/ReactCommon/cxxreact/ExecutorTokenFactory.h similarity index 100% rename from ReactCommon/bridge/ExecutorTokenFactory.h rename to ReactCommon/cxxreact/ExecutorTokenFactory.h diff --git a/ReactCommon/cxxreact/FollySupport.h b/ReactCommon/cxxreact/FollySupport.h new file mode 100644 index 00000000000..7da9e36ada6 --- /dev/null +++ b/ReactCommon/cxxreact/FollySupport.h @@ -0,0 +1,21 @@ +// Copyright 2004-present Facebook. All Rights Reserved. + +#pragma once + +#include +#include + +namespace facebook { +namespace react { +namespace detail { +// TODO(cjhopman): Once folly is updated, remove these. + +inline std::string toStdString(std::string&& str) { + return std::move(str); +} + +inline std::string toStdString(folly::fbstring&& str) { + return str.toStdString(); +} + +}}} diff --git a/ReactCommon/bridge/Instance.cpp b/ReactCommon/cxxreact/Instance.cpp similarity index 100% rename from ReactCommon/bridge/Instance.cpp rename to ReactCommon/cxxreact/Instance.cpp diff --git a/ReactCommon/bridge/Instance.h b/ReactCommon/cxxreact/Instance.h similarity index 100% rename from ReactCommon/bridge/Instance.h rename to ReactCommon/cxxreact/Instance.h diff --git a/ReactCommon/bridge/JSCExecutor.cpp b/ReactCommon/cxxreact/JSCExecutor.cpp similarity index 99% rename from ReactCommon/bridge/JSCExecutor.cpp rename to ReactCommon/cxxreact/JSCExecutor.cpp index cde2a7715d5..536313da4b3 100644 --- a/ReactCommon/bridge/JSCExecutor.cpp +++ b/ReactCommon/cxxreact/JSCExecutor.cpp @@ -14,6 +14,7 @@ #include #include +#include "FollySupport.h" #include "JSCHelpers.h" #include "Platform.h" #include "SystraceSection.h" @@ -139,7 +140,7 @@ JSCExecutor::JSCExecutor(std::shared_ptr delegate, SystraceSection t("setGlobalVariable"); setGlobalVariable( "__fbBatchedBridgeConfig", - folly::make_unique(folly::toJson(config))); + folly::make_unique(detail::toStdString(folly::toJson(config)))); } JSCExecutor::JSCExecutor( diff --git a/ReactCommon/bridge/JSCExecutor.h b/ReactCommon/cxxreact/JSCExecutor.h similarity index 100% rename from ReactCommon/bridge/JSCExecutor.h rename to ReactCommon/cxxreact/JSCExecutor.h diff --git a/ReactCommon/bridge/JSCHelpers.cpp b/ReactCommon/cxxreact/JSCHelpers.cpp similarity index 100% rename from ReactCommon/bridge/JSCHelpers.cpp rename to ReactCommon/cxxreact/JSCHelpers.cpp diff --git a/ReactCommon/bridge/JSCHelpers.h b/ReactCommon/cxxreact/JSCHelpers.h similarity index 100% rename from ReactCommon/bridge/JSCHelpers.h rename to ReactCommon/cxxreact/JSCHelpers.h diff --git a/ReactCommon/bridge/JSCLegacyProfiler.cpp b/ReactCommon/cxxreact/JSCLegacyProfiler.cpp similarity index 100% rename from ReactCommon/bridge/JSCLegacyProfiler.cpp rename to ReactCommon/cxxreact/JSCLegacyProfiler.cpp diff --git a/ReactCommon/bridge/JSCLegacyProfiler.h b/ReactCommon/cxxreact/JSCLegacyProfiler.h similarity index 100% rename from ReactCommon/bridge/JSCLegacyProfiler.h rename to ReactCommon/cxxreact/JSCLegacyProfiler.h diff --git a/ReactCommon/bridge/JSCLegacyTracing.cpp b/ReactCommon/cxxreact/JSCLegacyTracing.cpp similarity index 100% rename from ReactCommon/bridge/JSCLegacyTracing.cpp rename to ReactCommon/cxxreact/JSCLegacyTracing.cpp diff --git a/ReactCommon/bridge/JSCLegacyTracing.h b/ReactCommon/cxxreact/JSCLegacyTracing.h similarity index 100% rename from ReactCommon/bridge/JSCLegacyTracing.h rename to ReactCommon/cxxreact/JSCLegacyTracing.h diff --git a/ReactCommon/bridge/JSCMemory.cpp b/ReactCommon/cxxreact/JSCMemory.cpp similarity index 100% rename from ReactCommon/bridge/JSCMemory.cpp rename to ReactCommon/cxxreact/JSCMemory.cpp diff --git a/ReactCommon/bridge/JSCMemory.h b/ReactCommon/cxxreact/JSCMemory.h similarity index 100% rename from ReactCommon/bridge/JSCMemory.h rename to ReactCommon/cxxreact/JSCMemory.h diff --git a/ReactCommon/bridge/JSCPerfStats.cpp b/ReactCommon/cxxreact/JSCPerfStats.cpp similarity index 100% rename from ReactCommon/bridge/JSCPerfStats.cpp rename to ReactCommon/cxxreact/JSCPerfStats.cpp diff --git a/ReactCommon/bridge/JSCPerfStats.h b/ReactCommon/cxxreact/JSCPerfStats.h similarity index 100% rename from ReactCommon/bridge/JSCPerfStats.h rename to ReactCommon/cxxreact/JSCPerfStats.h diff --git a/ReactCommon/bridge/JSCTracing.cpp b/ReactCommon/cxxreact/JSCTracing.cpp similarity index 100% rename from ReactCommon/bridge/JSCTracing.cpp rename to ReactCommon/cxxreact/JSCTracing.cpp diff --git a/ReactCommon/bridge/JSCTracing.h b/ReactCommon/cxxreact/JSCTracing.h similarity index 100% rename from ReactCommon/bridge/JSCTracing.h rename to ReactCommon/cxxreact/JSCTracing.h diff --git a/ReactCommon/bridge/JSCWebWorker.cpp b/ReactCommon/cxxreact/JSCWebWorker.cpp similarity index 99% rename from ReactCommon/bridge/JSCWebWorker.cpp rename to ReactCommon/cxxreact/JSCWebWorker.cpp index 7c56ba17b79..0a123b6456f 100644 --- a/ReactCommon/bridge/JSCWebWorker.cpp +++ b/ReactCommon/cxxreact/JSCWebWorker.cpp @@ -2,12 +2,11 @@ #include "JSCWebWorker.h" -#include + #include #include #include -#include #include #include "JSCHelpers.h" @@ -15,6 +14,8 @@ #include "Platform.h" #include "Value.h" +#include + #include namespace facebook { diff --git a/ReactCommon/bridge/JSCWebWorker.h b/ReactCommon/cxxreact/JSCWebWorker.h similarity index 100% rename from ReactCommon/bridge/JSCWebWorker.h rename to ReactCommon/cxxreact/JSCWebWorker.h diff --git a/ReactCommon/bridge/JSModulesUnbundle.h b/ReactCommon/cxxreact/JSModulesUnbundle.h similarity index 100% rename from ReactCommon/bridge/JSModulesUnbundle.h rename to ReactCommon/cxxreact/JSModulesUnbundle.h diff --git a/ReactCommon/bridge/JsArgumentHelpers-inl.h b/ReactCommon/cxxreact/JsArgumentHelpers-inl.h similarity index 100% rename from ReactCommon/bridge/JsArgumentHelpers-inl.h rename to ReactCommon/cxxreact/JsArgumentHelpers-inl.h diff --git a/ReactCommon/bridge/JsArgumentHelpers.h b/ReactCommon/cxxreact/JsArgumentHelpers.h similarity index 96% rename from ReactCommon/bridge/JsArgumentHelpers.h rename to ReactCommon/cxxreact/JsArgumentHelpers.h index 80e3e48bd95..5ad42eafc4c 100644 --- a/ReactCommon/bridge/JsArgumentHelpers.h +++ b/ReactCommon/cxxreact/JsArgumentHelpers.h @@ -5,7 +5,10 @@ #include #include +#include "FollySupport.h" + #include +#include // When building a cross-platform module for React Native, arguments passed // from JS are represented as a folly::dynamic. This class provides helpers to @@ -97,7 +100,7 @@ inline double jsArgAsDouble(const folly::dynamic& args, size_t n) { // Extract the n'th arg from the given dynamic, as a string. Throws a // JsArgumentException if this fails for some reason. inline std::string jsArgAsString(const folly::dynamic& args, size_t n) { - return jsArgN(args, n, &folly::dynamic::asString); + return facebook::react::detail::toStdString(jsArgN(args, n, &folly::dynamic::asString)); } }} diff --git a/ReactCommon/bridge/MessageQueueThread.h b/ReactCommon/cxxreact/MessageQueueThread.h similarity index 100% rename from ReactCommon/bridge/MessageQueueThread.h rename to ReactCommon/cxxreact/MessageQueueThread.h diff --git a/ReactCommon/bridge/MethodCall.cpp b/ReactCommon/cxxreact/MethodCall.cpp similarity index 100% rename from ReactCommon/bridge/MethodCall.cpp rename to ReactCommon/cxxreact/MethodCall.cpp diff --git a/ReactCommon/bridge/MethodCall.h b/ReactCommon/cxxreact/MethodCall.h similarity index 100% rename from ReactCommon/bridge/MethodCall.h rename to ReactCommon/cxxreact/MethodCall.h diff --git a/ReactCommon/bridge/ModuleRegistry.cpp b/ReactCommon/cxxreact/ModuleRegistry.cpp similarity index 100% rename from ReactCommon/bridge/ModuleRegistry.cpp rename to ReactCommon/cxxreact/ModuleRegistry.cpp diff --git a/ReactCommon/bridge/ModuleRegistry.h b/ReactCommon/cxxreact/ModuleRegistry.h similarity index 100% rename from ReactCommon/bridge/ModuleRegistry.h rename to ReactCommon/cxxreact/ModuleRegistry.h diff --git a/ReactCommon/bridge/NativeModule.h b/ReactCommon/cxxreact/NativeModule.h similarity index 100% rename from ReactCommon/bridge/NativeModule.h rename to ReactCommon/cxxreact/NativeModule.h diff --git a/ReactCommon/bridge/NativeToJsBridge.cpp b/ReactCommon/cxxreact/NativeToJsBridge.cpp similarity index 98% rename from ReactCommon/bridge/NativeToJsBridge.cpp rename to ReactCommon/cxxreact/NativeToJsBridge.cpp index 8a90f7a0efb..c7b665a551b 100644 --- a/ReactCommon/bridge/NativeToJsBridge.cpp +++ b/ReactCommon/cxxreact/NativeToJsBridge.cpp @@ -147,8 +147,9 @@ void NativeToJsBridge::callFunction( const std::string& methodId, const folly::dynamic& arguments, const std::string& tracingName) { + int systraceCookie = -1; #ifdef WITH_FBSYSTRACE - int systraceCookie = m_systraceCookie++; + systraceCookie = m_systraceCookie++; FbSystraceAsyncFlow::begin( TRACE_TAG_REACT_CXX_BRIDGE, tracingName.c_str(), @@ -173,8 +174,9 @@ void NativeToJsBridge::callFunction( void NativeToJsBridge::invokeCallback(ExecutorToken executorToken, const double callbackId, const folly::dynamic& arguments) { + int systraceCookie = -1; #ifdef WITH_FBSYSTRACE - int systraceCookie = m_systraceCookie++; + systraceCookie = m_systraceCookie++; FbSystraceAsyncFlow::begin( TRACE_TAG_REACT_CXX_BRIDGE, "", diff --git a/ReactCommon/bridge/NativeToJsBridge.h b/ReactCommon/cxxreact/NativeToJsBridge.h similarity index 100% rename from ReactCommon/bridge/NativeToJsBridge.h rename to ReactCommon/cxxreact/NativeToJsBridge.h diff --git a/ReactCommon/bridge/Platform.cpp b/ReactCommon/cxxreact/Platform.cpp similarity index 100% rename from ReactCommon/bridge/Platform.cpp rename to ReactCommon/cxxreact/Platform.cpp diff --git a/ReactCommon/bridge/Platform.h b/ReactCommon/cxxreact/Platform.h similarity index 100% rename from ReactCommon/bridge/Platform.h rename to ReactCommon/cxxreact/Platform.h diff --git a/ReactCommon/bridge/SampleCxxModule.cpp b/ReactCommon/cxxreact/SampleCxxModule.cpp similarity index 100% rename from ReactCommon/bridge/SampleCxxModule.cpp rename to ReactCommon/cxxreact/SampleCxxModule.cpp diff --git a/ReactCommon/bridge/SampleCxxModule.h b/ReactCommon/cxxreact/SampleCxxModule.h similarity index 100% rename from ReactCommon/bridge/SampleCxxModule.h rename to ReactCommon/cxxreact/SampleCxxModule.h diff --git a/ReactCommon/bridge/SystraceSection.h b/ReactCommon/cxxreact/SystraceSection.h similarity index 100% rename from ReactCommon/bridge/SystraceSection.h rename to ReactCommon/cxxreact/SystraceSection.h diff --git a/ReactCommon/bridge/Value.cpp b/ReactCommon/cxxreact/Value.cpp similarity index 100% rename from ReactCommon/bridge/Value.cpp rename to ReactCommon/cxxreact/Value.cpp diff --git a/ReactCommon/bridge/Value.h b/ReactCommon/cxxreact/Value.h similarity index 100% rename from ReactCommon/bridge/Value.h rename to ReactCommon/cxxreact/Value.h diff --git a/ReactCommon/bridge/noncopyable.h b/ReactCommon/cxxreact/noncopyable.h similarity index 100% rename from ReactCommon/bridge/noncopyable.h rename to ReactCommon/cxxreact/noncopyable.h