Use new hybrid inheritance for NativeArray and descendants

Differential Revision: D2516708

fb-gh-sync-id: 75bc2d7095ffe2c397d5ffb34b621b322b858c3e
This commit is contained in:
Mike Armstrong
2015-10-07 00:32:05 -07:00
committed by facebook-github-bot-6
parent 8251f1c905
commit fb90ba6ded
5 changed files with 139 additions and 110 deletions

View File

@@ -22,15 +22,13 @@ public abstract class NativeArray {
SoLoader.loadLibrary(ReactBridge.REACT_NATIVE_LIB);
}
public NativeArray() {
mHybridData = initHybrid();
protected NativeArray(HybridData hybridData) {
mHybridData = hybridData;
}
@Override
public native String toString();
private native HybridData initHybrid();
@DoNotStrip
private HybridData mHybridData;
}

View File

@@ -9,6 +9,7 @@
package com.facebook.react.bridge;
import com.facebook.jni.HybridData;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.soloader.SoLoader;
@@ -23,6 +24,10 @@ public class ReadableNativeArray extends NativeArray implements ReadableArray {
SoLoader.loadLibrary(ReactBridge.REACT_NATIVE_LIB);
}
protected ReadableNativeArray(HybridData hybridData) {
super(hybridData);
}
@Override
public native int size();
@Override

View File

@@ -10,6 +10,7 @@
package com.facebook.react.bridge;
import com.facebook.infer.annotation.Assertions;
import com.facebook.jni.HybridData;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.soloader.SoLoader;
@@ -25,6 +26,10 @@ public class WritableNativeArray extends ReadableNativeArray implements Writable
SoLoader.loadLibrary(ReactBridge.REACT_NATIVE_LIB);
}
public WritableNativeArray() {
super(initHybrid());
}
@Override
public native void pushNull();
@Override
@@ -52,6 +57,7 @@ public class WritableNativeArray extends ReadableNativeArray implements Writable
pushNativeMap((WritableNativeMap) map);
}
private native static HybridData initHybrid();
private native void pushNativeArray(WritableNativeArray array);
private native void pushNativeMap(WritableNativeMap map);
}