Skip to content

Commit a945cd9

Browse files
christophpurrermeta-codesync[bot]
authored andcommitted
Remove CxxModule 2/2 C++ part (#54045)
Summary: Pull Request resolved: #54045 Changelog: [General][Breaking] Remove CxxModule 2/2 C++ part Reviewed By: mdvacca Differential Revision: D83808891 fbshipit-source-id: 6c5bd696465fa5b1de98c799cd3f18cdb45d2774
1 parent 0892a56 commit a945cd9

11 files changed

Lines changed: 5 additions & 204 deletions

File tree

packages/react-native/ReactAndroid/api/ReactAndroid.api

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -680,19 +680,6 @@ public final class com/facebook/react/bridge/CxxCallbackImpl : com/facebook/jni/
680680
public fun invoke ([Ljava/lang/Object;)V
681681
}
682682

683-
public class com/facebook/react/bridge/CxxModuleWrapper : com/facebook/react/bridge/CxxModuleWrapperBase {
684-
protected fun <init> (Lcom/facebook/jni/HybridData;)V
685-
}
686-
687-
public class com/facebook/react/bridge/CxxModuleWrapperBase : com/facebook/react/bridge/NativeModule {
688-
protected fun <init> (Lcom/facebook/jni/HybridData;)V
689-
public fun canOverrideExistingModule ()Z
690-
public fun getName ()Ljava/lang/String;
691-
public fun initialize ()V
692-
public fun invalidate ()V
693-
protected final fun resetModule (Lcom/facebook/jni/HybridData;)V
694-
}
695-
696683
public final class com/facebook/react/bridge/DefaultJSExceptionHandler : com/facebook/react/bridge/JSExceptionHandler {
697684
public fun <init> ()V
698685
public fun handleException (Ljava/lang/Exception;)V

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapper.kt

Lines changed: 0 additions & 25 deletions
This file was deleted.

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridge/CxxModuleWrapperBase.kt

Lines changed: 0 additions & 61 deletions
This file was deleted.

packages/react-native/ReactAndroid/src/main/jni/react/jni/CatalystInstanceImpl.cpp

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,7 @@ void CatalystInstanceImpl::initializeBridge(
192192
// stack.
193193

194194
moduleRegistry_ = std::make_shared<ModuleRegistry>(buildNativeModuleList(
195-
std::weak_ptr<Instance>(instance_),
196-
javaModules,
197-
{},
198-
moduleMessageQueue_));
195+
std::weak_ptr<Instance>(instance_), javaModules, moduleMessageQueue_));
199196

200197
instance_->initializeBridge(
201198
std::make_unique<InstanceCallbackImpl>(callback),
@@ -211,10 +208,7 @@ void CatalystInstanceImpl::extendNativeModules(
211208
jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject>
212209
javaModules) {
213210
moduleRegistry_->registerModules(buildNativeModuleList(
214-
std::weak_ptr<Instance>(instance_),
215-
javaModules,
216-
{},
217-
moduleMessageQueue_));
211+
std::weak_ptr<Instance>(instance_), javaModules, moduleMessageQueue_));
218212
}
219213

220214
void CatalystInstanceImpl::jniSetSourceURL(const std::string& sourceURL) {

packages/react-native/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapper.h

Lines changed: 0 additions & 37 deletions
This file was deleted.

packages/react-native/ReactAndroid/src/main/jni/react/jni/CxxModuleWrapperBase.h

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77

88
#pragma once
99

10-
#include <memory>
11-
#include <string>
12-
13-
#include <cxxreact/CxxModule.h>
1410
#include <fbjni/fbjni.h>
1511

1612
namespace facebook::react {
@@ -19,24 +15,4 @@ struct JNativeModule : jni::JavaClass<JNativeModule> {
1915
constexpr static const char *const kJavaDescriptor = "Lcom/facebook/react/bridge/NativeModule;";
2016
};
2117

22-
/**
23-
* The C++ part of a CxxModuleWrapper is not a unique class, but it
24-
* must extend this base class.
25-
*/
26-
class CxxModuleWrapperBase : public jni::HybridClass<CxxModuleWrapperBase, JNativeModule> {
27-
public:
28-
constexpr static const char *const kJavaDescriptor = "Lcom/facebook/react/bridge/CxxModuleWrapperBase;";
29-
30-
static void registerNatives()
31-
{
32-
registerHybrid({makeNativeMethod("getName", CxxModuleWrapperBase::getName)});
33-
}
34-
35-
// JNI method
36-
virtual std::string getName() = 0;
37-
38-
// Called by ModuleRegistryBuilder
39-
virtual std::unique_ptr<xplat::module::CxxModule> getModule() = 0;
40-
};
41-
4218
} // namespace facebook::react

packages/react-native/ReactAndroid/src/main/jni/react/jni/JavaModuleWrapper.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
#include <glog/logging.h>
1111

12-
#include <cxxreact/CxxModule.h>
1312
#include <cxxreact/CxxNativeModule.h>
1413
#include <cxxreact/Instance.h>
1514
#include <cxxreact/JsArgumentHelpers.h>

packages/react-native/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.cpp

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -24,30 +24,13 @@ std::string ModuleHolder::getName() const {
2424

2525
xplat::module::CxxModule::Provider ModuleHolder::getProvider(
2626
const std::string& moduleName) const {
27-
return [self = jni::make_global(self()), moduleName] {
28-
static auto getModule =
29-
ModuleHolder::javaClassStatic()->getMethod<JNativeModule::javaobject()>(
30-
"getModule");
31-
// This is the call which uses the lazy Java Provider to instantiate the
32-
// Java CxxModuleWrapper which contains the CxxModule.
33-
auto module = getModule(self);
34-
35-
CHECK(module->isInstanceOf(CxxModuleWrapperBase::javaClassStatic()))
36-
<< "NativeModule '" << moduleName << "' isn't a C++ module";
37-
38-
auto cxxModule =
39-
jni::static_ref_cast<CxxModuleWrapperBase::javaobject>(module);
40-
// Then, we grab the CxxModule from the wrapper, which is no longer needed.
41-
return cxxModule->cthis()->getModule();
42-
};
27+
return [self = jni::make_global(self()), moduleName] { return nullptr; };
4328
}
4429

4530
std::vector<std::unique_ptr<NativeModule>> buildNativeModuleList(
4631
std::weak_ptr<Instance> winstance,
4732
jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject>
4833
javaModules,
49-
jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject>
50-
cxxModules,
5134
std::shared_ptr<MessageQueueThread> moduleMessageQueue) {
5235
std::vector<std::unique_ptr<NativeModule>> modules;
5336
if (javaModules) {
@@ -57,17 +40,6 @@ std::vector<std::unique_ptr<NativeModule>> buildNativeModuleList(
5740
winstance, jm, moduleMessageQueue));
5841
}
5942
}
60-
if (cxxModules) {
61-
for (const auto& cm : *cxxModules) {
62-
std::string moduleName = cm->getName();
63-
modules.emplace_back(
64-
std::make_unique<CxxNativeModule>(
65-
winstance,
66-
moduleName,
67-
cm->getProvider(moduleName),
68-
moduleMessageQueue));
69-
}
70-
}
7143
return modules;
7244
}
7345

packages/react-native/ReactAndroid/src/main/jni/react/jni/ModuleRegistryBuilder.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
#include <cxxreact/ModuleRegistry.h>
1212
#include <fbjni/fbjni.h>
1313

14-
#include "CxxModuleWrapper.h"
14+
#include "CxxModuleWrapperBase.h"
1515
#include "JavaModuleWrapper.h"
1616

1717
#ifndef RCT_REMOVE_LEGACY_ARCH
@@ -33,7 +33,6 @@ class [[deprecated("This API will be removed along with the legacy architecture.
3333
std::vector<std::unique_ptr<NativeModule>> buildNativeModuleList(
3434
std::weak_ptr<Instance> winstance,
3535
jni::alias_ref<jni::JCollection<JavaModuleWrapper::javaobject>::javaobject> javaModules,
36-
jni::alias_ref<jni::JCollection<ModuleHolder::javaobject>::javaobject> cxxModules,
3736
std::shared_ptr<MessageQueueThread> moduleMessageQueue);
3837
} // namespace facebook::react
3938

packages/react-native/ReactAndroid/src/main/jni/react/jni/OnLoad.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
#include <fbjni/fbjni.h>
1212

1313
#include "CatalystInstanceImpl.h"
14-
#include "CxxModuleWrapperBase.h"
1514
#include "InspectorNetworkRequestListener.h"
1615
#include "JavaScriptExecutorHolder.h"
1716
#include "ReactInstanceManagerInspectorTarget.h"
@@ -42,7 +41,6 @@ extern "C" JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved) {
4241
CatalystInstanceImpl::registerNatives();
4342
#pragma clang diagnostic pop
4443
#endif
45-
CxxModuleWrapperBase::registerNatives();
4644
ReactInstanceManagerInspectorTarget::registerNatives();
4745
InspectorNetworkRequestListener::registerNatives();
4846
});

0 commit comments

Comments
 (0)