mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Fix nullsafe FIXMEs for TurboModuleManager and mark nullsafe (#50370)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/50370 Gone trough all the FIXMEs added in the previous diff by the nullsafe tool, marked the class as nullsafe and ensured no remaining violations. Changelog: [Android][Fixed] Made TurboModuleManager.java nullsafe Reviewed By: cortinico Differential Revision: D71979605 fbshipit-source-id: b8da8f1ad12f5f6d63e7bd876d7c4912d69a4c4d
This commit is contained in:
committed by
Facebook GitHub Bot
parent
4664db138f
commit
419b68f38a
+12
-14
@@ -8,10 +8,10 @@
|
||||
package com.facebook.react.internal.turbomodule.core;
|
||||
|
||||
import androidx.annotation.GuardedBy;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.common.logging.FLog;
|
||||
import com.facebook.infer.annotation.Assertions;
|
||||
import com.facebook.infer.annotation.Nullsafe;
|
||||
import com.facebook.jni.HybridData;
|
||||
import com.facebook.proguard.annotations.DoNotStrip;
|
||||
import com.facebook.react.bridge.CxxModuleWrapper;
|
||||
@@ -36,13 +36,14 @@ import java.util.Map;
|
||||
* has a C++ counterpart This class installs the JSI bindings. It also implements the method to get
|
||||
* a Java module, that the C++ counterpart calls.
|
||||
*/
|
||||
@Nullsafe(Nullsafe.Mode.LOCAL)
|
||||
public class TurboModuleManager implements TurboModuleRegistry {
|
||||
private static final String TAG = "TurboModuleManager";
|
||||
|
||||
private final List<String> mEagerInitModuleNames;
|
||||
private final ModuleProvider mTurboModuleProvider;
|
||||
private final ModuleProvider mLegacyModuleProvider;
|
||||
private final TurboModuleManagerDelegate mDelegate;
|
||||
private final @Nullable TurboModuleManagerDelegate mDelegate;
|
||||
|
||||
static {
|
||||
SoLoader.loadLibrary("turbomodulejsijni");
|
||||
@@ -67,14 +68,12 @@ public class TurboModuleManager implements TurboModuleRegistry {
|
||||
@Nullable final TurboModuleManagerDelegate delegate,
|
||||
CallInvokerHolder jsCallInvokerHolder,
|
||||
NativeMethodCallInvokerHolder nativeMethodCallInvokerHolder) {
|
||||
// NULLSAFE_FIXME[Field Not Nullable]
|
||||
mDelegate = delegate;
|
||||
mHybridData =
|
||||
initHybrid(
|
||||
runtimeExecutor,
|
||||
(CallInvokerHolderImpl) jsCallInvokerHolder,
|
||||
(NativeMethodCallInvokerHolderImpl) nativeMethodCallInvokerHolder,
|
||||
// NULLSAFE_FIXME[Parameter Not Nullable]
|
||||
delegate);
|
||||
installJSIBindings(shouldEnableLegacyModuleInterop());
|
||||
|
||||
@@ -117,7 +116,6 @@ public class TurboModuleManager implements TurboModuleRegistry {
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull
|
||||
public List<String> getEagerInitModuleNames() {
|
||||
return mEagerInitModuleNames;
|
||||
}
|
||||
@@ -242,16 +240,17 @@ public class TurboModuleManager implements TurboModuleRegistry {
|
||||
moduleHolder = mModuleHolders.get(moduleName);
|
||||
}
|
||||
|
||||
// NULLSAFE_FIXME[Nullable Dereference]
|
||||
if (moduleHolder == null) {
|
||||
FLog.e(TAG, "getModule(): Tried to get module \"%s\", but moduleHolder was null", moduleName);
|
||||
return null;
|
||||
}
|
||||
|
||||
TurboModulePerfLogger.moduleCreateStart(moduleName, moduleHolder.getModuleId());
|
||||
// NULLSAFE_FIXME[Parameter Not Nullable]
|
||||
NativeModule module = getOrCreateModule(moduleName, moduleHolder, true);
|
||||
|
||||
if (module != null) {
|
||||
// NULLSAFE_FIXME[Nullable Dereference]
|
||||
TurboModulePerfLogger.moduleCreateEnd(moduleName, moduleHolder.getModuleId());
|
||||
} else {
|
||||
// NULLSAFE_FIXME[Nullable Dereference]
|
||||
TurboModulePerfLogger.moduleCreateFail(moduleName, moduleHolder.getModuleId());
|
||||
}
|
||||
|
||||
@@ -266,7 +265,7 @@ public class TurboModuleManager implements TurboModuleRegistry {
|
||||
*/
|
||||
@Nullable
|
||||
private NativeModule getOrCreateModule(
|
||||
String moduleName, @NonNull ModuleHolder moduleHolder, boolean shouldPerfLog) {
|
||||
String moduleName, ModuleHolder moduleHolder, boolean shouldPerfLog) {
|
||||
boolean shouldCreateModule = false;
|
||||
|
||||
synchronized (moduleHolder) {
|
||||
@@ -390,7 +389,7 @@ public class TurboModuleManager implements TurboModuleRegistry {
|
||||
RuntimeExecutor runtimeExecutor,
|
||||
CallInvokerHolderImpl jsCallInvokerHolder,
|
||||
NativeMethodCallInvokerHolderImpl nativeMethodCallInvoker,
|
||||
TurboModuleManagerDelegate tmmDelegate);
|
||||
@Nullable TurboModuleManagerDelegate tmmDelegate);
|
||||
|
||||
private native void installJSIBindings(boolean shouldCreateLegacyModules);
|
||||
|
||||
@@ -432,8 +431,7 @@ public class TurboModuleManager implements TurboModuleRegistry {
|
||||
}
|
||||
|
||||
private static class ModuleHolder {
|
||||
// NULLSAFE_FIXME[Field Not Nullable]
|
||||
private volatile NativeModule mModule = null;
|
||||
private volatile @Nullable NativeModule mModule = null;
|
||||
private volatile boolean mIsTryingToCreate = false;
|
||||
private volatile boolean mIsDoneCreatingModule = false;
|
||||
private static volatile int sHolderCount = 0;
|
||||
@@ -448,7 +446,7 @@ public class TurboModuleManager implements TurboModuleRegistry {
|
||||
return mModuleId;
|
||||
}
|
||||
|
||||
void setModule(@NonNull NativeModule module) {
|
||||
void setModule(NativeModule module) {
|
||||
mModule = module;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user