Loading libs/hwui/Android.bp +2 −1 Original line number Diff line number Diff line Loading @@ -288,7 +288,6 @@ cc_defaults { "jni/PathEffect.cpp", "jni/PathMeasure.cpp", "jni/Picture.cpp", "jni/Region.cpp", "jni/Shader.cpp", "jni/Typeface.cpp", "jni/Utils.cpp", Loading Loading @@ -334,6 +333,7 @@ cc_defaults { "jni/GraphicsStatsService.cpp", "jni/Movie.cpp", "jni/MovieImpl.cpp", "jni/Region.cpp", // requires libbinder_ndk "jni/pdf/PdfDocument.cpp", "jni/pdf/PdfEditor.cpp", "jni/pdf/PdfRenderer.cpp", Loading @@ -341,6 +341,7 @@ cc_defaults { ], shared_libs: [ "libandroidfw", "libbinder_ndk", "libmediandk", "libnativedisplay", "libnativewindow", Loading libs/hwui/jni/Region.cpp +11 −9 Original line number Diff line number Diff line Loading @@ -19,10 +19,10 @@ #include "GraphicsJNI.h" #ifdef __ANDROID__ // Layoutlib does not support parcel #include <binder/Parcel.h> #include <android/binder_parcel.h> #include <android/binder_parcel_jni.h> #include <android/binder_parcel_utils.h> #endif #include "android_os_Parcel.h" #include "android_util_Binder.h" namespace android { Loading Loading @@ -207,10 +207,11 @@ static jlong Region_createFromParcel(JNIEnv* env, jobject clazz, jobject parcel) return 0; } android::Parcel* p = android::parcelForJavaObject(env, parcel); std::vector<int32_t> rects; p->readInt32Vector(&rects); AParcel* p = AParcel_fromJavaParcel(env, parcel); ndk::AParcel_readVector(p, &rects); AParcel_delete(p); if ((rects.size() % 4) != 0) { return 0; Loading @@ -235,8 +236,6 @@ static jboolean Region_writeToParcel(JNIEnv* env, jobject clazz, jlong regionHan return JNI_FALSE; } android::Parcel* p = android::parcelForJavaObject(env, parcel); std::vector<int32_t> rects; SkRegion::Iterator it(*region); while (!it.done()) { Loading @@ -248,7 +247,10 @@ static jboolean Region_writeToParcel(JNIEnv* env, jobject clazz, jlong regionHan it.next(); } p->writeInt32Vector(rects); AParcel* p = AParcel_fromJavaParcel(env, parcel); ndk::AParcel_writeVector(p, rects); AParcel_delete(p); return JNI_TRUE; #else return JNI_FALSE; Loading Loading
libs/hwui/Android.bp +2 −1 Original line number Diff line number Diff line Loading @@ -288,7 +288,6 @@ cc_defaults { "jni/PathEffect.cpp", "jni/PathMeasure.cpp", "jni/Picture.cpp", "jni/Region.cpp", "jni/Shader.cpp", "jni/Typeface.cpp", "jni/Utils.cpp", Loading Loading @@ -334,6 +333,7 @@ cc_defaults { "jni/GraphicsStatsService.cpp", "jni/Movie.cpp", "jni/MovieImpl.cpp", "jni/Region.cpp", // requires libbinder_ndk "jni/pdf/PdfDocument.cpp", "jni/pdf/PdfEditor.cpp", "jni/pdf/PdfRenderer.cpp", Loading @@ -341,6 +341,7 @@ cc_defaults { ], shared_libs: [ "libandroidfw", "libbinder_ndk", "libmediandk", "libnativedisplay", "libnativewindow", Loading
libs/hwui/jni/Region.cpp +11 −9 Original line number Diff line number Diff line Loading @@ -19,10 +19,10 @@ #include "GraphicsJNI.h" #ifdef __ANDROID__ // Layoutlib does not support parcel #include <binder/Parcel.h> #include <android/binder_parcel.h> #include <android/binder_parcel_jni.h> #include <android/binder_parcel_utils.h> #endif #include "android_os_Parcel.h" #include "android_util_Binder.h" namespace android { Loading Loading @@ -207,10 +207,11 @@ static jlong Region_createFromParcel(JNIEnv* env, jobject clazz, jobject parcel) return 0; } android::Parcel* p = android::parcelForJavaObject(env, parcel); std::vector<int32_t> rects; p->readInt32Vector(&rects); AParcel* p = AParcel_fromJavaParcel(env, parcel); ndk::AParcel_readVector(p, &rects); AParcel_delete(p); if ((rects.size() % 4) != 0) { return 0; Loading @@ -235,8 +236,6 @@ static jboolean Region_writeToParcel(JNIEnv* env, jobject clazz, jlong regionHan return JNI_FALSE; } android::Parcel* p = android::parcelForJavaObject(env, parcel); std::vector<int32_t> rects; SkRegion::Iterator it(*region); while (!it.done()) { Loading @@ -248,7 +247,10 @@ static jboolean Region_writeToParcel(JNIEnv* env, jobject clazz, jlong regionHan it.next(); } p->writeInt32Vector(rects); AParcel* p = AParcel_fromJavaParcel(env, parcel); ndk::AParcel_writeVector(p, rects); AParcel_delete(p); return JNI_TRUE; #else return JNI_FALSE; Loading