diff options
6 files changed, 22 insertions, 9 deletions
diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 84434f7..d26bcd3 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -1979,7 +1979,8 @@ public interface WindowManager extends ViewManager { if (userActivityTimeout >= 0) { sb.append(" userActivityTimeout=").append(userActivityTimeout); } - if (!surfaceInsets.equals(Insets.NONE)) { + if (surfaceInsets.left != 0 || surfaceInsets.top != 0 || surfaceInsets.right != 0 || + surfaceInsets.bottom != 0) { sb.append(" surfaceInsets=").append(surfaceInsets); } if (needsMenuKey != NEEDS_MENU_UNSET) { diff --git a/core/java/com/android/internal/view/animation/FallbackLUTInterpolator.java b/core/java/com/android/internal/view/animation/FallbackLUTInterpolator.java index 06838c9..526e2ae 100644 --- a/core/java/com/android/internal/view/animation/FallbackLUTInterpolator.java +++ b/core/java/com/android/internal/view/animation/FallbackLUTInterpolator.java @@ -45,7 +45,7 @@ public class FallbackLUTInterpolator implements NativeInterpolatorFactory, TimeI private static float[] createLUT(TimeInterpolator interpolator, long duration) { long frameIntervalNanos = Choreographer.getInstance().getFrameIntervalNanos(); int animIntervalMs = (int) (frameIntervalNanos / TimeUtils.NANOS_PER_MS); - int numAnimFrames = (int) Math.ceil(duration / animIntervalMs); + int numAnimFrames = (int) Math.ceil(((double) duration) / animIntervalMs); float values[] = new float[numAnimFrames]; float lastFrame = numAnimFrames - 1; for (int i = 0; i < numAnimFrames; i++) { diff --git a/graphics/java/android/graphics/drawable/VectorDrawable.java b/graphics/java/android/graphics/drawable/VectorDrawable.java index 8b0f635..dd26019 100644 --- a/graphics/java/android/graphics/drawable/VectorDrawable.java +++ b/graphics/java/android/graphics/drawable/VectorDrawable.java @@ -396,7 +396,7 @@ public class VectorDrawable extends Drawable { * @hide */ public float getPixelSize() { - if (mVectorState == null && mVectorState.mVPathRenderer == null || + if (mVectorState == null || mVectorState.mVPathRenderer == null || mVectorState.mVPathRenderer.mBaseWidth == 0 || mVectorState.mVPathRenderer.mBaseHeight == 0 || mVectorState.mVPathRenderer.mViewportHeight == 0 || diff --git a/media/jni/android_media_MediaDrm.cpp b/media/jni/android_media_MediaDrm.cpp index d9de7a9..5578416 100644 --- a/media/jni/android_media_MediaDrm.cpp +++ b/media/jni/android_media_MediaDrm.cpp @@ -438,9 +438,11 @@ static String8 JStringToString8(JNIEnv *env, jstring const &jstr) { Entry e = s.next(); */ -static KeyedVector<String8, String8> HashMapToKeyedVector(JNIEnv *env, jobject &hashMap) { +static KeyedVector<String8, String8> HashMapToKeyedVector( + JNIEnv *env, jobject &hashMap, bool* pIsOK) { jclass clazz = gFields.stringClassId; KeyedVector<String8, String8> keyedVector; + *pIsOK = true; jobject entrySet = env->CallObjectMethod(hashMap, gFields.hashmap.entrySet); if (entrySet) { @@ -451,16 +453,22 @@ static KeyedVector<String8, String8> HashMapToKeyedVector(JNIEnv *env, jobject & jobject entry = env->CallObjectMethod(iterator, gFields.iterator.next); if (entry) { jobject obj = env->CallObjectMethod(entry, gFields.entry.getKey); - if (!env->IsInstanceOf(obj, clazz)) { + if (obj == NULL || !env->IsInstanceOf(obj, clazz)) { jniThrowException(env, "java/lang/IllegalArgumentException", "HashMap key is not a String"); + env->DeleteLocalRef(entry); + *pIsOK = false; + break; } jstring jkey = static_cast<jstring>(obj); obj = env->CallObjectMethod(entry, gFields.entry.getValue); - if (!env->IsInstanceOf(obj, clazz)) { + if (obj == NULL || !env->IsInstanceOf(obj, clazz)) { jniThrowException(env, "java/lang/IllegalArgumentException", "HashMap value is not a String"); + env->DeleteLocalRef(entry); + *pIsOK = false; + break; } jstring jvalue = static_cast<jstring>(obj); @@ -763,7 +771,11 @@ static jobject android_media_MediaDrm_getKeyRequest( KeyedVector<String8, String8> optParams; if (joptParams != NULL) { - optParams = HashMapToKeyedVector(env, joptParams); + bool isOK; + optParams = HashMapToKeyedVector(env, joptParams, &isOK); + if (!isOK) { + return NULL; + } } Vector<uint8_t> request; diff --git a/native/graphics/jni/Android.mk b/native/graphics/jni/Android.mk index b7f0fbd..91c9ac6 100644 --- a/native/graphics/jni/Android.mk +++ b/native/graphics/jni/Android.mk @@ -31,7 +31,7 @@ LOCAL_MODULE:= libjnigraphics LOCAL_CFLAGS += -Wall -Werror -Wunused -Wunreachable-code # TODO: This is to work around b/19059885. Remove after root cause is fixed -LOCAL_LDFLAGS_arm := -Wl,--hash-style=both +LOCAL_LDFLAGS_arm := -Wl,--hash-style=sysv include $(BUILD_SHARED_LIBRARY) diff --git a/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceResponse.java b/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceResponse.java index 194c982..0ddfa77 100644 --- a/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceResponse.java +++ b/wifi/java/android/net/wifi/p2p/nsd/WifiP2pServiceResponse.java @@ -334,7 +334,7 @@ public class WifiP2pServiceResponse implements Parcelable { result = 31 * result + mTransId; result = 31 * result + (mDevice.deviceAddress == null ? 0 : mDevice.deviceAddress.hashCode()); - result = 31 * result + (mData == null ? 0 : mData.hashCode()); + result = 31 * result + (mData == null ? 0 : Arrays.hashCode(mData)); return result; } |
