Skip to content

Commit 6ecae73

Browse files
fromcelticparkfacebook-github-bot
authored andcommitted
Remove RAMBundleRegistry subclasses
Differential Revision: D6262247 fbshipit-source-id: 708f919e34f1706d9aca19a34ad8ea506e9f8d8b
1 parent b0193b0 commit 6ecae73

15 files changed

+54
-131
lines changed

React/CxxBridge/RCTCxxBridge.mm

+3-3
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@
3535
#import <cxxreact/JSBundleType.h>
3636
#import <cxxreact/JSCExecutor.h>
3737
#import <cxxreact/JSIndexedRAMBundle.h>
38-
#include <cxxreact/JSIndexedRAMBundleRegistry.h>
3938
#import <cxxreact/Platform.h>
39+
#import <cxxreact/RAMBundleRegistry.h>
4040
#import <jschelpers/Value.h>
4141

4242
#import "NSDataBigString.h"
@@ -1152,8 +1152,8 @@ - (void)executeApplicationScript:(NSData *)script
11521152
? [[self.delegate jsSegmentsDirectory].path stringByAppendingString:@"/"]
11531153
: nil;
11541154
auto registry = jsSegmentsDirectory != nil
1155-
? std::make_unique<JSIndexedRAMBundleRegistry>(std::move(ramBundle), jsSegmentsDirectory.UTF8String)
1156-
: std::make_unique<RAMBundleRegistry>(std::move(ramBundle));
1155+
? RAMBundleRegistry::multipleBundlesRegistry(std::move(ramBundle), JSIndexedRAMBundle::buildFactory(jsSegmentsDirectory.UTF8String))
1156+
: RAMBundleRegistry::singleBundleRegistry(std::move(ramBundle));
11571157
self->_reactInstance->loadRAMBundle(std::move(registry), std::move(scriptStr),
11581158
sourceUrlStr.UTF8String, !async);
11591159
}

React/React.xcodeproj/project.pbxproj

-16
Original file line numberDiff line numberDiff line change
@@ -1023,7 +1023,6 @@
10231023
597633371F4E021D005BE8A4 /* RCTShadowView+Internal.m in Sources */ = {isa = PBXBuildFile; fileRef = 597633341F4E021D005BE8A4 /* RCTShadowView+Internal.m */; };
10241024
597633381F4E021D005BE8A4 /* RCTShadowView+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 597633351F4E021D005BE8A4 /* RCTShadowView+Internal.h */; };
10251025
597633391F4E021D005BE8A4 /* RCTShadowView+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 597633351F4E021D005BE8A4 /* RCTShadowView+Internal.h */; };
1026-
598FD1911F816998006C54CB /* JSIndexedRAMBundleRegistry.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6D3801E1F71D91600621378 /* JSIndexedRAMBundleRegistry.h */; };
10271026
598FD1921F816A2A006C54CB /* RAMBundleRegistry.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6D380181F71D75B00621378 /* RAMBundleRegistry.h */; };
10281027
598FD1931F817284006C54CB /* PrivateDataBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9936F3351F5F2F480010BF04 /* PrivateDataBase.cpp */; };
10291028
598FD1941F8172A9006C54CB /* PrivateDataBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 9936F3361F5F2F480010BF04 /* PrivateDataBase.h */; };
@@ -1158,7 +1157,6 @@
11581157
C654505E1F3BD9280090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C654505D1F3BD9280090799B /* RCTManagedPointer.h */; };
11591158
C654505F1F3BD9280090799B /* RCTManagedPointer.h in Headers */ = {isa = PBXBuildFile; fileRef = C654505D1F3BD9280090799B /* RCTManagedPointer.h */; };
11601159
C669D8981F72E3DE006748EB /* RAMBundleRegistry.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6D380181F71D75B00621378 /* RAMBundleRegistry.h */; };
1161-
C669D8B91F72E4B7006748EB /* JSIndexedRAMBundleRegistry.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6D3801E1F71D91600621378 /* JSIndexedRAMBundleRegistry.h */; };
11621160
C6827DF61EF17CCC00D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; };
11631161
C6827DF71EF17CCC00D66BEF /* RCTJSEnvironment.h in Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; };
11641162
C6827DFB1EF1800E00D66BEF /* RCTJSEnvironment.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */; };
@@ -1167,10 +1165,6 @@
11671165
C6D3801B1F71D76200621378 /* RAMBundleRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D380181F71D75B00621378 /* RAMBundleRegistry.h */; };
11681166
C6D3801C1F71D76700621378 /* RAMBundleRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6D380191F71D75B00621378 /* RAMBundleRegistry.cpp */; };
11691167
C6D3801D1F71D76800621378 /* RAMBundleRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6D380191F71D75B00621378 /* RAMBundleRegistry.cpp */; };
1170-
C6D380201F71D91D00621378 /* JSIndexedRAMBundleRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D3801E1F71D91600621378 /* JSIndexedRAMBundleRegistry.h */; };
1171-
C6D380211F71D91E00621378 /* JSIndexedRAMBundleRegistry.h in Headers */ = {isa = PBXBuildFile; fileRef = C6D3801E1F71D91600621378 /* JSIndexedRAMBundleRegistry.h */; };
1172-
C6D380221F71D92300621378 /* JSIndexedRAMBundleRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6D3801F1F71D91600621378 /* JSIndexedRAMBundleRegistry.cpp */; };
1173-
C6D380231F71D92400621378 /* JSIndexedRAMBundleRegistry.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C6D3801F1F71D91600621378 /* JSIndexedRAMBundleRegistry.cpp */; };
11741168
CF2731C01E7B8DE40044CA4F /* RCTDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = CF2731BE1E7B8DE40044CA4F /* RCTDeviceInfo.h */; };
11751169
CF2731C11E7B8DE40044CA4F /* RCTDeviceInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = CF2731BF1E7B8DE40044CA4F /* RCTDeviceInfo.m */; };
11761170
CF2731C21E7B8DEF0044CA4F /* RCTDeviceInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = CF2731BE1E7B8DE40044CA4F /* RCTDeviceInfo.h */; };
@@ -1455,7 +1449,6 @@
14551449
dstSubfolderSpec = 16;
14561450
files = (
14571451
598FD1921F816A2A006C54CB /* RAMBundleRegistry.h in Copy Headers */,
1458-
598FD1911F816998006C54CB /* JSIndexedRAMBundleRegistry.h in Copy Headers */,
14591452
3DA9823B1E5B1053004F2374 /* CxxModule.h in Copy Headers */,
14601453
3DA9823C1E5B1053004F2374 /* CxxNativeModule.h in Copy Headers */,
14611454
3DA9823D1E5B1053004F2374 /* JSExecutor.h in Copy Headers */,
@@ -1674,7 +1667,6 @@
16741667
dstPath = include/cxxreact;
16751668
dstSubfolderSpec = 16;
16761669
files = (
1677-
C669D8B91F72E4B7006748EB /* JSIndexedRAMBundleRegistry.h in Copy Headers */,
16781670
C669D8981F72E3DE006748EB /* RAMBundleRegistry.h in Copy Headers */,
16791671
3DA981A01E5B0E34004F2374 /* CxxModule.h in Copy Headers */,
16801672
3DA981A11E5B0E34004F2374 /* CxxNativeModule.h in Copy Headers */,
@@ -2194,8 +2186,6 @@
21942186
C6827DF51EF17CCC00D66BEF /* RCTJSEnvironment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTJSEnvironment.h; sourceTree = "<group>"; };
21952187
C6D380181F71D75B00621378 /* RAMBundleRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RAMBundleRegistry.h; sourceTree = "<group>"; };
21962188
C6D380191F71D75B00621378 /* RAMBundleRegistry.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = RAMBundleRegistry.cpp; sourceTree = "<group>"; };
2197-
C6D3801E1F71D91600621378 /* JSIndexedRAMBundleRegistry.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = JSIndexedRAMBundleRegistry.h; sourceTree = "<group>"; };
2198-
C6D3801F1F71D91600621378 /* JSIndexedRAMBundleRegistry.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = JSIndexedRAMBundleRegistry.cpp; sourceTree = "<group>"; };
21992189
CF2731BE1E7B8DE40044CA4F /* RCTDeviceInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RCTDeviceInfo.h; sourceTree = "<group>"; };
22002190
CF2731BF1E7B8DE40044CA4F /* RCTDeviceInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RCTDeviceInfo.m; sourceTree = "<group>"; };
22012191
E3BBC8EB1ADE6F47001BBD81 /* RCTTextDecorationLineType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RCTTextDecorationLineType.h; sourceTree = "<group>"; };
@@ -2905,8 +2895,6 @@
29052895
3D92B0AB1E03699D0018521A /* JSExecutor.h */,
29062896
3D92B0C61E03699D0018521A /* JSIndexedRAMBundle.cpp */,
29072897
3D92B0C71E03699D0018521A /* JSIndexedRAMBundle.h */,
2908-
C6D3801F1F71D91600621378 /* JSIndexedRAMBundleRegistry.cpp */,
2909-
C6D3801E1F71D91600621378 /* JSIndexedRAMBundleRegistry.h */,
29102898
3D92B0C81E03699D0018521A /* JSModulesUnbundle.h */,
29112899
3D92B0C91E03699D0018521A /* MessageQueueThread.h */,
29122900
3D92B0CA1E03699D0018521A /* MethodCall.cpp */,
@@ -3154,7 +3142,6 @@
31543142
27595AC61E575C7800CCE2B1 /* JsArgumentHelpers.h in Headers */,
31553143
27595AD71E575C7800CCE2B1 /* SampleCxxModule.h in Headers */,
31563144
27595AD21E575C7800CCE2B1 /* MethodCall.h in Headers */,
3157-
C6D380211F71D91E00621378 /* JSIndexedRAMBundleRegistry.h in Headers */,
31583145
3D3030221DF8294C00D6DDAE /* JSBundleType.h in Headers */,
31593146
27595ACA1E575C7800CCE2B1 /* JSCMemory.h in Headers */,
31603147
3D74547D1E54758900E74ADD /* JSBigString.h in Headers */,
@@ -3244,7 +3231,6 @@
32443231
27595AAB1E575C7800CCE2B1 /* JsArgumentHelpers.h in Headers */,
32453232
27595ABC1E575C7800CCE2B1 /* SampleCxxModule.h in Headers */,
32463233
27595AB71E575C7800CCE2B1 /* MethodCall.h in Headers */,
3247-
C6D380201F71D91D00621378 /* JSIndexedRAMBundleRegistry.h in Headers */,
32483234
3D3CD9471DE5FC7800167DC4 /* oss-compat-util.h in Headers */,
32493235
27595AAF1E575C7800CCE2B1 /* JSCMemory.h in Headers */,
32503236
3D74547C1E54758900E74ADD /* JSBigString.h in Headers */,
@@ -4133,7 +4119,6 @@
41334119
isa = PBXSourcesBuildPhase;
41344120
buildActionMask = 2147483647;
41354121
files = (
4136-
C6D380221F71D92300621378 /* JSIndexedRAMBundleRegistry.cpp in Sources */,
41374122
3DC159E51E83E1E9007B1282 /* JSBigString.cpp in Sources */,
41384123
13F8877B1E29726200C3C7A1 /* JSIndexedRAMBundle.cpp in Sources */,
41394124
13F8877D1E29726200C3C7A1 /* ModuleRegistry.cpp in Sources */,
@@ -4159,7 +4144,6 @@
41594144
isa = PBXSourcesBuildPhase;
41604145
buildActionMask = 2147483647;
41614146
files = (
4162-
C6D380231F71D92400621378 /* JSIndexedRAMBundleRegistry.cpp in Sources */,
41634147
3DC159E61E83E1FA007B1282 /* JSBigString.cpp in Sources */,
41644148
13F8878E1E29726300C3C7A1 /* JSIndexedRAMBundle.cpp in Sources */,
41654149
13F887901E29726300C3C7A1 /* ModuleRegistry.cpp in Sources */,

ReactAndroid/src/main/jni/react/jni/Android.mk

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ LOCAL_SRC_FILES := \
1414
JSLoader.cpp \
1515
JSLogging.cpp \
1616
JniJSModulesUnbundle.cpp \
17-
JniRAMBundleRegistry.cpp \
1817
MethodInvoker.cpp \
1918
ModuleRegistryBuilder.cpp \
2019
NativeArray.cpp \

ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp

+14-8
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
#include <cxxreact/JSBigString.h>
1111
#include <cxxreact/JSBundleType.h>
1212
#include <cxxreact/JSIndexedRAMBundle.h>
13-
#include <cxxreact/JSIndexedRAMBundleRegistry.h>
1413
#include <cxxreact/MethodCall.h>
15-
#include <cxxreact/RecoverableError.h>
1614
#include <cxxreact/ModuleRegistry.h>
15+
#include <cxxreact/RecoverableError.h>
16+
#include <cxxreact/RAMBundleRegistry.h>
1717
#include <fb/log.h>
1818
#include <folly/dynamic.h>
1919
#include <folly/Memory.h>
@@ -22,9 +22,8 @@
2222

2323
#include "CxxModuleWrapper.h"
2424
#include "JavaScriptExecutorHolder.h"
25-
#include "JniJSModulesUnbundle.h"
26-
#include "JniRAMBundleRegistry.h"
2725
#include "JNativeRunnable.h"
26+
#include "JniJSModulesUnbundle.h"
2827
#include "NativeArray.h"
2928

3029
using namespace facebook::jni;
@@ -193,9 +192,7 @@ void CatalystInstanceImpl::jniLoadScriptFromAssets(
193192
auto script = loadScriptFromAssets(manager, sourceURL);
194193
if (JniJSModulesUnbundle::isUnbundle(manager, sourceURL)) {
195194
auto bundle = JniJSModulesUnbundle::fromEntryFile(manager, sourceURL);
196-
auto registry = jsSegmentsDirectory_.empty()
197-
? folly::make_unique<RAMBundleRegistry>(std::move(bundle))
198-
: folly::make_unique<JniRAMBundleRegistry>(std::move(bundle), manager, sourceURL);
195+
auto registry = RAMBundleRegistry::singleBundleRegistry(std::move(bundle));
199196
instance_->loadRAMBundle(
200197
std::move(registry),
201198
std::move(script),
@@ -211,7 +208,16 @@ void CatalystInstanceImpl::jniLoadScriptFromFile(const std::string& fileName,
211208
const std::string& sourceURL,
212209
bool loadSynchronously) {
213210
if (Instance::isIndexedRAMBundle(fileName.c_str())) {
214-
instance_->loadRAMBundleFromFile(fileName, sourceURL, loadSynchronously);
211+
auto bundle = folly::make_unique<JSIndexedRAMBundle>(fileName.c_str());
212+
auto script = bundle->getStartupCode();
213+
auto registry = jsSegmentsDirectory_.empty()
214+
? RAMBundleRegistry::singleBundleRegistry(std::move(bundle))
215+
: RAMBundleRegistry::multipleBundlesRegistry(std::move(bundle), JSIndexedRAMBundle::buildFactory(jsSegmentsDirectory_));
216+
instance_->loadRAMBundle(
217+
std::move(registry),
218+
std::move(script),
219+
sourceURL,
220+
loadSynchronously);
215221
} else {
216222
std::unique_ptr<const JSBigFileString> script;
217223
RecoverableError::runRethrowingAsRecoverable<std::system_error>(

ReactAndroid/src/main/jni/react/jni/JniRAMBundleRegistry.cpp

-24
This file was deleted.

ReactAndroid/src/main/jni/react/jni/JniRAMBundleRegistry.h

-21
This file was deleted.

ReactCommon/cxxreact/Android.mk

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ LOCAL_SRC_FILES := \
1818
JSCTracing.cpp \
1919
JSCUtils.cpp \
2020
JSIndexedRAMBundle.cpp \
21-
JSIndexedRAMBundleRegistry.cpp \
2221
MethodCall.cpp \
2322
ModuleRegistry.cpp \
2423
NativeToJsBridge.cpp \

ReactCommon/cxxreact/BUCK

-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ CXXREACT_PUBLIC_HEADERS = [
8080
"JSCExecutor.h",
8181
"JSCNativeModules.h",
8282
"JSIndexedRAMBundle.h",
83-
"JSIndexedRAMBundleRegistry.h",
8483
"JSModulesUnbundle.h",
8584
"MessageQueueThread.h",
8685
"MethodCall.h",

ReactCommon/cxxreact/Instance.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ void Instance::loadRAMBundleFromFile(const std::string& sourcePath,
111111
bool loadSynchronously) {
112112
auto bundle = folly::make_unique<JSIndexedRAMBundle>(sourcePath.c_str());
113113
auto startupScript = bundle->getStartupCode();
114-
auto registry = folly::make_unique<RAMBundleRegistry>(std::move(bundle));
114+
auto registry = RAMBundleRegistry::singleBundleRegistry(std::move(bundle));
115115
loadRAMBundle(
116116
std::move(registry),
117117
std::move(startupScript),

ReactCommon/cxxreact/JSIndexedRAMBundle.cpp

+9
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,20 @@
22

33
#include "JSIndexedRAMBundle.h"
44

5+
#include <folly/Memory.h>
6+
57
#include "oss-compat-util.h"
68

79
namespace facebook {
810
namespace react {
911

12+
std::function<std::unique_ptr<JSModulesUnbundle>(uint32_t)> JSIndexedRAMBundle::buildFactory(const std::string& baseDirectoryPath) {
13+
return [baseDirectoryPath](uint32_t index){
14+
std::string bundlePathById = baseDirectoryPath + toString(index) + ".jsbundle";
15+
return folly::make_unique<JSIndexedRAMBundle>(bundlePathById.c_str());
16+
};
17+
}
18+
1019
JSIndexedRAMBundle::JSIndexedRAMBundle(const char *sourcePath) :
1120
m_bundle (sourcePath, std::ios_base::in) {
1221
if (!m_bundle) {

ReactCommon/cxxreact/JSIndexedRAMBundle.h

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ namespace react {
1717

1818
class RN_EXPORT JSIndexedRAMBundle : public JSModulesUnbundle {
1919
public:
20+
static std::function<std::unique_ptr<JSModulesUnbundle>(uint32_t)> buildFactory(const std::string& baseDirectoryPath);
21+
2022
// Throws std::runtime_error on failure.
2123
JSIndexedRAMBundle(const char *sourceURL);
2224

ReactCommon/cxxreact/JSIndexedRAMBundleRegistry.cpp

-22
This file was deleted.

ReactCommon/cxxreact/JSIndexedRAMBundleRegistry.h

-25
This file was deleted.

ReactCommon/cxxreact/RAMBundleRegistry.cpp

+17-2
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,35 @@
22

33
#include "RAMBundleRegistry.h"
44

5+
#include <folly/Memory.h>
6+
57
#include <libgen.h>
68

79
namespace facebook {
810
namespace react {
911

1012
constexpr uint32_t RAMBundleRegistry::MAIN_BUNDLE_ID;
1113

12-
RAMBundleRegistry::RAMBundleRegistry(std::unique_ptr<JSModulesUnbundle> mainBundle) {
14+
std::unique_ptr<RAMBundleRegistry> RAMBundleRegistry::singleBundleRegistry(std::unique_ptr<JSModulesUnbundle> mainBundle) {
15+
RAMBundleRegistry *registry = new RAMBundleRegistry(std::move(mainBundle));
16+
return std::unique_ptr<RAMBundleRegistry>(registry);
17+
}
18+
19+
std::unique_ptr<RAMBundleRegistry> RAMBundleRegistry::multipleBundlesRegistry(std::unique_ptr<JSModulesUnbundle> mainBundle, std::function<std::unique_ptr<JSModulesUnbundle>(uint32_t)> factory) {
20+
RAMBundleRegistry *registry = new RAMBundleRegistry(std::move(mainBundle), std::move(factory));
21+
return std::unique_ptr<RAMBundleRegistry>(registry);
22+
}
23+
24+
RAMBundleRegistry::RAMBundleRegistry(std::unique_ptr<JSModulesUnbundle> mainBundle, std::function<std::unique_ptr<JSModulesUnbundle>(uint32_t)> factory): m_factory(factory) {
1325
m_bundles.emplace(MAIN_BUNDLE_ID, std::move(mainBundle));
1426
}
1527

1628
JSModulesUnbundle::Module RAMBundleRegistry::getModule(uint32_t bundleId, uint32_t moduleId) {
1729
if (m_bundles.find(bundleId) == m_bundles.end()) {
18-
m_bundles.emplace(bundleId, this->bundleById(bundleId));
30+
if (!m_factory) {
31+
throw std::runtime_error("You need to register factory function in order to support multiple RAM bundles.");
32+
}
33+
m_bundles.emplace(bundleId, m_factory(bundleId));
1934
}
2035

2136
return getBundle(bundleId)->getModule(moduleId);

0 commit comments

Comments
 (0)