Merge "Removed legacy code used to read/write java arrays from HwBinder parcels."

am: eda7bc5c84

Change-Id: If256977b368ec830f1c01f86c3845d9313c38767
This commit is contained in:
Andreas Huber
2016-09-20 20:48:53 +00:00
committed by android-build-merger
4 changed files with 0 additions and 250 deletions

View File

@@ -53,21 +53,13 @@ public class HwParcel {
public native final void writeDouble(double val);
public native final void writeString(String val);
public native final void writeBoolArray(int size, boolean[] val);
public native final void writeBoolVector(boolean[] val);
public native final void writeInt8Array(int size, byte[] val);
public native final void writeInt8Vector(byte[] val);
public native final void writeInt16Array(int size, short[] val);
public native final void writeInt16Vector(short[] val);
public native final void writeInt32Array(int size, int[] val);
public native final void writeInt32Vector(int[] val);
public native final void writeInt64Array(int size, long[] val);
public native final void writeInt64Vector(long[] val);
public native final void writeFloatArray(int size, float[] val);
public native final void writeFloatVector(float[] val);
public native final void writeDoubleArray(int size, double[] val);
public native final void writeDoubleVector(double[] val);
public native final void writeStringArray(int size, String[] val);
public native final void writeStringVector(String[] val);
public native final void writeStrongBinder(IHwBinder binder);
@@ -82,21 +74,13 @@ public class HwParcel {
public native final double readDouble();
public native final String readString();
public native final boolean[] readBoolArray(int size);
public native final boolean[] readBoolVector();
public native final byte[] readInt8Array(int size);
public native final byte[] readInt8Vector();
public native final short[] readInt16Array(int size);
public native final short[] readInt16Vector();
public native final int[] readInt32Array(int size);
public native final int[] readInt32Vector();
public native final long[] readInt64Array(int size);
public native final long[] readInt64Vector();
public native final float[] readFloatArray(int size);
public native final float[] readFloatVector();
public native final double[] readDoubleArray(int size);
public native final double[] readDoubleVector();
public native final String[] readStringArray(int size);
public native final String[] readStringVector();
public native final IHwBinder readStrongBinder();

View File

@@ -431,35 +431,6 @@ static void JHwParcel_native_writeString(
signalExceptionForError(env, err);
}
#define DEFINE_PARCEL_ARRAY_WRITER(Suffix,Type) \
static void JHwParcel_native_write ## Suffix ## Array( \
JNIEnv *env, jobject thiz, jint size, Type ## Array valObj) { \
if (valObj == NULL) { \
jniThrowException(env, "java/lang/NullPointerException", NULL); \
return; \
} \
\
jsize len = env->GetArrayLength(valObj); \
\
if (len != size) { \
jniThrowException(env, "java/lang/IllegalArgumentException", NULL); \
return; \
} \
\
sp<JHwParcel> impl = JHwParcel::GetNativeContext(env, thiz); \
\
const Type *val = \
impl->getStorage()->allocTemporary ## Suffix ## Array(env, valObj); \
\
hardware::Parcel *parcel = impl->getParcel(); \
\
size_t parentHandle; \
status_t err = parcel->writeBuffer( \
val, size * sizeof(*val), &parentHandle); \
\
signalExceptionForError(env, err); \
}
#define DEFINE_PARCEL_VECTOR_WRITER(Suffix,Type) \
static void JHwParcel_native_write ## Suffix ## Vector( \
JNIEnv *env, jobject thiz, Type ## Array valObj) { \
@@ -491,13 +462,6 @@ static void JHwParcel_native_write ## Suffix ## Vector( \
signalExceptionForError(env, err); \
}
DEFINE_PARCEL_ARRAY_WRITER(Int8,jbyte)
DEFINE_PARCEL_ARRAY_WRITER(Int16,jshort)
DEFINE_PARCEL_ARRAY_WRITER(Int32,jint)
DEFINE_PARCEL_ARRAY_WRITER(Int64,jlong)
DEFINE_PARCEL_ARRAY_WRITER(Float,jfloat)
DEFINE_PARCEL_ARRAY_WRITER(Double,jdouble)
DEFINE_PARCEL_VECTOR_WRITER(Int8,jbyte)
DEFINE_PARCEL_VECTOR_WRITER(Int16,jshort)
DEFINE_PARCEL_VECTOR_WRITER(Int32,jint)
@@ -505,43 +469,6 @@ DEFINE_PARCEL_VECTOR_WRITER(Int64,jlong)
DEFINE_PARCEL_VECTOR_WRITER(Float,jfloat)
DEFINE_PARCEL_VECTOR_WRITER(Double,jdouble)
static void JHwParcel_native_writeBoolArray(
JNIEnv *env, jobject thiz, jint size, jbooleanArray valObj) {
if (valObj == NULL) {
jniThrowException(env, "java/lang/NullPointerException", NULL);
return;
}
jsize len = env->GetArrayLength(valObj);
if (len != size) {
jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
return;
}
sp<JHwParcel> impl = JHwParcel::GetNativeContext(env, thiz);
jboolean *src = env->GetBooleanArrayElements(valObj, nullptr);
bool *dst =
(bool *)impl->getStorage()->allocTemporaryStorage(size * sizeof(bool));
for (jint i = 0; i < size; ++i) {
dst[i] = src[i];
}
env->ReleaseBooleanArrayElements(valObj, src, 0 /* mode */);
src = nullptr;
hardware::Parcel *parcel = impl->getParcel();
size_t parentHandle;
status_t err = parcel->writeBuffer(
dst, size * sizeof(*dst), &parentHandle);
signalExceptionForError(env, err);
}
static void JHwParcel_native_writeBoolVector(
JNIEnv *env, jobject thiz, jbooleanArray valObj) {
if (valObj == NULL) {
@@ -651,22 +578,6 @@ static jstring JHwParcel_native_readString(JNIEnv *env, jobject thiz) {
return MakeStringObjFromHidlString(env, *s);
}
#define DEFINE_PARCEL_ARRAY_READER(Suffix,Type,NewType) \
static Type ## Array JHwParcel_native_read ## Suffix ## Array( \
JNIEnv *env, jobject thiz, jint size) { \
hardware::Parcel *parcel = \
JHwParcel::GetNativeContext(env, thiz)->getParcel(); \
\
size_t parentHandle; \
const Type *val = static_cast<const Type *>( \
parcel->readBuffer(&parentHandle)); \
\
Type ## Array valObj = env->New ## NewType ## Array(size); \
env->Set ## NewType ## ArrayRegion(valObj, 0, size, val); \
\
return valObj; \
}
#define DEFINE_PARCEL_VECTOR_READER(Suffix,Type,NewType) \
static Type ## Array JHwParcel_native_read ## Suffix ## Vector( \
JNIEnv *env, jobject thiz) { \
@@ -703,13 +614,6 @@ static Type ## Array JHwParcel_native_read ## Suffix ## Vector( \
return valObj; \
}
DEFINE_PARCEL_ARRAY_READER(Int8,jbyte,Byte)
DEFINE_PARCEL_ARRAY_READER(Int16,jshort,Short)
DEFINE_PARCEL_ARRAY_READER(Int32,jint,Int)
DEFINE_PARCEL_ARRAY_READER(Int64,jlong,Long)
DEFINE_PARCEL_ARRAY_READER(Float,jfloat,Float)
DEFINE_PARCEL_ARRAY_READER(Double,jdouble,Double)
DEFINE_PARCEL_VECTOR_READER(Int8,jbyte,Byte)
DEFINE_PARCEL_VECTOR_READER(Int16,jshort,Short)
DEFINE_PARCEL_VECTOR_READER(Int32,jint,Int)
@@ -717,25 +621,6 @@ DEFINE_PARCEL_VECTOR_READER(Int64,jlong,Long)
DEFINE_PARCEL_VECTOR_READER(Float,jfloat,Float)
DEFINE_PARCEL_VECTOR_READER(Double,jdouble,Double)
static jbooleanArray JHwParcel_native_readBoolArray(
JNIEnv *env, jobject thiz, jint size) {
hardware::Parcel *parcel =
JHwParcel::GetNativeContext(env, thiz)->getParcel();
size_t parentHandle;
const bool *val = static_cast<const bool *>(
parcel->readBuffer(&parentHandle));
jbooleanArray valObj = env->NewBooleanArray(size);
for (jint i = 0; i < size; ++i) {
jboolean x = val[i];
env->SetBooleanArrayRegion(valObj, i, 1, &x);
}
return valObj;
}
static jbooleanArray JHwParcel_native_readBoolVector(
JNIEnv *env, jobject thiz) {
hardware::Parcel *parcel =
@@ -797,80 +682,6 @@ static jobjectArray MakeStringArray(
return arrayObj;
}
static jobjectArray JHwParcel_native_readStringArray(
JNIEnv *env, jobject thiz, jint size) {
hardware::Parcel *parcel =
JHwParcel::GetNativeContext(env, thiz)->getParcel();
size_t parentHandle;
const hidl_string *val = static_cast<const hidl_string *>(
parcel->readBuffer(&parentHandle));
if (val == NULL) {
signalExceptionForError(env, UNKNOWN_ERROR);
return NULL;
}
status_t err = OK;
for (jint i = 0; (err == OK) && (i < size); ++i) {
err = const_cast<hidl_string *>(&val[i])
->readEmbeddedFromParcel(
*parcel,
parentHandle,
i * sizeof(hidl_string));
}
if (err != OK) {
signalExceptionForError(env, err);
return NULL;
}
return MakeStringArray(env, val, size);
}
static void JHwParcel_native_writeStringArray(
JNIEnv *env, jobject thiz, jint size, jobjectArray arrayObj) {
if (arrayObj == NULL) {
jniThrowException(env, "java/lang/NullPointerException", NULL);
return;
}
jsize len = env->GetArrayLength(arrayObj);
if (len != size) {
jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
return;
}
sp<JHwParcel> impl = JHwParcel::GetNativeContext(env, thiz);
hidl_string *strings = impl->getStorage()->allocStringArray(len);
for (jsize i = 0; i < len; ++i) {
ScopedLocalRef<jstring> stringObj(
env,
(jstring)env->GetObjectArrayElement(arrayObj, i));
const hidl_string *s =
impl->getStorage()->allocTemporaryString(env, stringObj.get());
strings[i].setToExternal(s->c_str(), s->size());
}
hardware::Parcel *parcel = impl->getParcel();
size_t parentHandle;
status_t err = parcel->writeBuffer(
strings, sizeof(hidl_string) * len, &parentHandle);
for (jsize i = 0; (err == OK) && (i < len); ++i) {
err = strings[i].writeEmbeddedToParcel(
parcel, parentHandle, i * sizeof(hidl_string));
}
signalExceptionForError(env, err);
}
static jobjectArray JHwParcel_native_readStringVector(
JNIEnv *env, jobject thiz) {
typedef hidl_vec<hidl_string> string_vec;
@@ -1047,26 +858,16 @@ static JNINativeMethod gMethods[] = {
{ "writeString", "(Ljava/lang/String;)V",
(void *)JHwParcel_native_writeString },
{ "writeBoolArray", "(I[Z)V", (void *)JHwParcel_native_writeBoolArray },
{ "writeBoolVector", "([Z)V", (void *)JHwParcel_native_writeBoolVector },
{ "writeInt8Array", "(I[B)V", (void *)JHwParcel_native_writeInt8Array },
{ "writeInt8Vector", "([B)V", (void *)JHwParcel_native_writeInt8Vector },
{ "writeInt16Array", "(I[S)V", (void *)JHwParcel_native_writeInt16Array },
{ "writeInt16Vector", "([S)V", (void *)JHwParcel_native_writeInt16Vector },
{ "writeInt32Array", "(I[I)V", (void *)JHwParcel_native_writeInt32Array },
{ "writeInt32Vector", "([I)V", (void *)JHwParcel_native_writeInt32Vector },
{ "writeInt64Array", "(I[J)V", (void *)JHwParcel_native_writeInt64Array },
{ "writeInt64Vector", "([J)V", (void *)JHwParcel_native_writeInt64Vector },
{ "writeFloatArray", "(I[F)V", (void *)JHwParcel_native_writeFloatArray },
{ "writeFloatVector", "([F)V", (void *)JHwParcel_native_writeFloatVector },
{ "writeDoubleArray", "(I[D)V", (void *)JHwParcel_native_writeDoubleArray },
{ "writeDoubleVector", "([D)V",
(void *)JHwParcel_native_writeDoubleVector },
{ "writeStringArray", "(I[Ljava/lang/String;)V",
(void *)JHwParcel_native_writeStringArray },
{ "writeStringVector", "([Ljava/lang/String;)V",
(void *)JHwParcel_native_writeStringVector },
@@ -1087,24 +888,14 @@ static JNINativeMethod gMethods[] = {
{ "readString", "()Ljava/lang/String;",
(void *)JHwParcel_native_readString },
{ "readBoolArray", "(I)[Z", (void *)JHwParcel_native_readBoolArray },
{ "readBoolVector", "()[Z", (void *)JHwParcel_native_readBoolVector },
{ "readInt8Array", "(I)[B", (void *)JHwParcel_native_readInt8Array },
{ "readInt8Vector", "()[B", (void *)JHwParcel_native_readInt8Vector },
{ "readInt16Array", "(I)[S", (void *)JHwParcel_native_readInt16Array },
{ "readInt16Vector", "()[S", (void *)JHwParcel_native_readInt16Vector },
{ "readInt32Array", "(I)[I", (void *)JHwParcel_native_readInt32Array },
{ "readInt32Vector", "()[I", (void *)JHwParcel_native_readInt32Vector },
{ "readInt64Array", "(I)[J", (void *)JHwParcel_native_readInt64Array },
{ "readInt64Vector", "()[J", (void *)JHwParcel_native_readInt64Vector },
{ "readFloatArray", "(I)[F", (void *)JHwParcel_native_readFloatArray },
{ "readFloatVector", "()[F", (void *)JHwParcel_native_readFloatVector },
{ "readDoubleArray", "(I)[D", (void *)JHwParcel_native_readDoubleArray },
{ "readDoubleVector", "()[D", (void *)JHwParcel_native_readDoubleVector },
{ "readStringArray", "(I)[Ljava/lang/String;",
(void *)JHwParcel_native_readStringArray },
{ "readStringVector", "()[Ljava/lang/String;",
(void *)JHwParcel_native_readStringVector },

View File

@@ -71,21 +71,6 @@ const hidl_string *EphemeralStorage::allocTemporaryString(
return s;
}
#define DEFINE_ALLOC_ARRAY_METHODS(Suffix,Type,NewType) \
const Type *EphemeralStorage::allocTemporary ## Suffix ## Array( \
JNIEnv *env, Type ## Array arrayObj) { \
Type ## Array obj = (Type ## Array)env->NewGlobalRef(arrayObj); \
const Type *val = env->Get ## NewType ## ArrayElements(obj, NULL); \
\
Item item; \
item.mType = TYPE_ ## Suffix ## _ARRAY; \
item.mObj = obj; \
item.mPtr = (void *)val; \
mItems.push_back(item); \
\
return val; \
}
#define DEFINE_ALLOC_VECTOR_METHODS(Suffix,Type,NewType) \
const hidl_vec<Type> *EphemeralStorage::allocTemporary ## Suffix ## Vector( \
JNIEnv *env, Type ## Array arrayObj) { \
@@ -107,13 +92,6 @@ const hidl_vec<Type> *EphemeralStorage::allocTemporary ## Suffix ## Vector( \
return vec; \
}
DEFINE_ALLOC_ARRAY_METHODS(Int8,jbyte,Byte)
DEFINE_ALLOC_ARRAY_METHODS(Int16,jshort,Short)
DEFINE_ALLOC_ARRAY_METHODS(Int32,jint,Int)
DEFINE_ALLOC_ARRAY_METHODS(Int64,jlong,Long)
DEFINE_ALLOC_ARRAY_METHODS(Float,jfloat,Float)
DEFINE_ALLOC_ARRAY_METHODS(Double,jdouble,Double)
DEFINE_ALLOC_VECTOR_METHODS(Int8,jbyte,Byte)
DEFINE_ALLOC_VECTOR_METHODS(Int16,jshort,Short)
DEFINE_ALLOC_VECTOR_METHODS(Int32,jint,Int)

View File

@@ -26,9 +26,6 @@
namespace android {
#define DECLARE_ALLOC_METHODS(Suffix,Type) \
const Type *allocTemporary ## Suffix ## Array( \
JNIEnv *env, Type ## Array arrayObj); \
\
const ::android::hardware::hidl_vec<Type> * \
allocTemporary ## Suffix ## Vector( \
JNIEnv *env, Type ## Array arrayObj);