Loading core/java/android/os/HwParcel.java +0 −16 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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(); Loading core/jni/android_os_HwParcel.cpp +0 −209 Original line number Diff line number Diff line Loading @@ -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) { \ Loading Loading @@ -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) Loading @@ -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) { Loading Loading @@ -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) { \ Loading Loading @@ -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) Loading @@ -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 = Loading Loading @@ -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; Loading Loading @@ -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 }, Loading @@ -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 }, Loading core/jni/hwbinder/EphemeralStorage.cpp +0 −22 Original line number Diff line number Diff line Loading @@ -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) { \ Loading @@ -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) Loading core/jni/hwbinder/EphemeralStorage.h +0 −3 Original line number Diff line number Diff line Loading @@ -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); Loading Loading
core/java/android/os/HwParcel.java +0 −16 Original line number Diff line number Diff line Loading @@ -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); Loading @@ -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(); Loading
core/jni/android_os_HwParcel.cpp +0 −209 Original line number Diff line number Diff line Loading @@ -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) { \ Loading Loading @@ -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) Loading @@ -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) { Loading Loading @@ -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) { \ Loading Loading @@ -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) Loading @@ -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 = Loading Loading @@ -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; Loading Loading @@ -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 }, Loading @@ -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 }, Loading
core/jni/hwbinder/EphemeralStorage.cpp +0 −22 Original line number Diff line number Diff line Loading @@ -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) { \ Loading @@ -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) Loading
core/jni/hwbinder/EphemeralStorage.h +0 −3 Original line number Diff line number Diff line Loading @@ -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); Loading