mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
fix nullsafe FIXMEs for DynamicFromMap.java and mark nullsafe
Summary: 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 DynamicFromMap.java nullsafe Reviewed By: alanleedev Differential Revision: D72384077 fbshipit-source-id: 70fb921fed06e9f89eb69c558692d1d7705fe2e5
This commit is contained in:
committed by
Facebook GitHub Bot
parent
fe2c8fc057
commit
dcb2dbb2c3
+13
-8
@@ -9,9 +9,11 @@ package com.facebook.react.bridge;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.core.util.Pools.SimplePool;
|
||||
import com.facebook.infer.annotation.Nullsafe;
|
||||
import java.util.Objects;
|
||||
|
||||
/** Implementation of Dynamic wrapping a ReadableMap. */
|
||||
@Nullsafe(Nullsafe.Mode.LOCAL)
|
||||
class DynamicFromMap implements Dynamic {
|
||||
private static final ThreadLocal<SimplePool<DynamicFromMap>> sPool =
|
||||
new ThreadLocal<SimplePool<DynamicFromMap>>() {
|
||||
@@ -28,8 +30,11 @@ class DynamicFromMap implements Dynamic {
|
||||
private DynamicFromMap() {}
|
||||
|
||||
public static DynamicFromMap create(ReadableMap map, String name) {
|
||||
// NULLSAFE_FIXME[Nullable Dereference]
|
||||
DynamicFromMap dynamic = sPool.get().acquire();
|
||||
SimplePool<DynamicFromMap> poolValueHolder = sPool.get();
|
||||
DynamicFromMap dynamic = null;
|
||||
if (poolValueHolder != null) {
|
||||
dynamic = poolValueHolder.acquire();
|
||||
}
|
||||
if (dynamic == null) {
|
||||
dynamic = new DynamicFromMap();
|
||||
}
|
||||
@@ -42,8 +47,10 @@ class DynamicFromMap implements Dynamic {
|
||||
public void recycle() {
|
||||
mMap = null;
|
||||
mName = null;
|
||||
// NULLSAFE_FIXME[Nullable Dereference]
|
||||
sPool.get().release(this);
|
||||
SimplePool<DynamicFromMap> poolValueHolder = sPool.get();
|
||||
if (poolValueHolder != null) {
|
||||
poolValueHolder.release(this);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -79,20 +86,18 @@ class DynamicFromMap implements Dynamic {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String asString() {
|
||||
public @Nullable String asString() {
|
||||
if (mMap == null || mName == null) {
|
||||
throw new IllegalStateException("This dynamic value has been recycled");
|
||||
}
|
||||
// NULLSAFE_FIXME[Return Not Nullable]
|
||||
return mMap.getString(mName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReadableArray asArray() {
|
||||
public @Nullable ReadableArray asArray() {
|
||||
if (mMap == null || mName == null) {
|
||||
throw new IllegalStateException("This dynamic value has been recycled");
|
||||
}
|
||||
// NULLSAFE_FIXME[Return Not Nullable]
|
||||
return mMap.getArray(mName);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user