mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Adapt ReadableMapBuffer to MapBuffer interface
Summary: Updates `ReadableMapBuffer` to conform to `MapBuffer` interface, to allow interchangeable use of `Readable/WritableMapBuffer` in the code. Notable changes: - MapBuffer.Entry getters are now represented as Kotlin properties and appended `Value` suffix (e.g. `entry.getInt()` becomes `entry.getIntValue()` in Java, or `entry.intValue` in Kotlin) - `ByteBuffer` is imported in constructor instead of on demand. This method doesn't copy the data as the bytes are read directly from native heap, and benchmarking a 500-byte `MapBuffer` shows no difference in import speed. - Internal logic of `ReadableMapBuffer` uses `UShort` kotlin type for key retrieval, for more correct representation of values. - Explicit exception throws are replaced with `require` and `check` methods for `IllegalArgumentException` and `IllegalStateException` (default FB conversion). The change also updates `ReadableMapBuffer` usages to `MapBuffer` interface where possible (virtually everywhere except JNI methods). Changelog: [Android][Changed] - Adopt `MapBuffer` interface for `ReadableMapBuffer` Reviewed By: mdvacca Differential Revision: D35218633 fbshipit-source-id: 515dd974c27b2978ade325b2e1750ab8f068a20a
This commit is contained in:
1 parent
cf6f3b680b
commit
81e4249315
14 files changed
+460
-589
No files matched your search
@@ -11,7 +11,7 @@ import androidx.annotation.NonNull;
|
||||
import com.facebook.react.bridge.JSIModuleProvider;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
import com.facebook.react.bridge.UIManager;
|
||||
import com.facebook.react.common.mapbuffer.ReadableMapBufferSoLoader;
|
||||
import com.facebook.react.common.mapbuffer.MapBufferSoLoader;
|
||||
import com.facebook.react.config.ReactFeatureFlags;
|
||||
import com.facebook.react.fabric.events.EventBeatManager;
|
||||
import com.facebook.react.uimanager.ViewManagerRegistry;
|
||||
@@ -46,7 +46,7 @@ public class FabricJSIModuleProvider implements JSIModuleProvider<UIManager> {
|
||||
final Binding binding = new Binding();
|
||||
|
||||
if (ReactFeatureFlags.isMapBufferSerializationEnabled()) {
|
||||
ReadableMapBufferSoLoader.staticInit();
|
||||
MapBufferSoLoader.staticInit();
|
||||
}
|
||||
|
||||
binding.register(
|
||||
|
||||
Reference in new issue
Block a user