Fix issue #3485923: Gmail crash
Allow application to try to recover if a surface OOM error
happens on the client side.
Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index d3d3792..6426635 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -1020,7 +1020,8 @@
data.enforceInterface(IActivityManager.descriptor);
int[] pids = data.createIntArray();
String reason = data.readString();
- boolean res = killPids(pids, reason);
+ boolean secure = data.readInt() != 0;
+ boolean res = killPids(pids, reason, secure);
reply.writeNoException();
reply.writeInt(res ? 1 : 0);
return true;
@@ -2636,12 +2637,13 @@
mRemote.transact(NOTE_WAKEUP_ALARM_TRANSACTION, data, null, 0);
data.recycle();
}
- public boolean killPids(int[] pids, String reason) throws RemoteException {
+ public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException {
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
data.writeInterfaceToken(IActivityManager.descriptor);
data.writeIntArray(pids);
data.writeString(reason);
+ data.writeInt(secure ? 1 : 0);
mRemote.transact(KILL_PIDS_TRANSACTION, data, reply, 0);
boolean res = reply.readInt() != 0;
data.recycle();