summaryrefslogtreecommitdiffstats
path: root/core/java/android/app
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2011-03-02 21:32:58 -0800
committerDianne Hackborn <hackbod@google.com>2011-03-02 22:38:58 -0800
commit648251710162cdaf7371012a1cbb79b9bc5bc0e4 (patch)
treea98c62fcd2391c1dfa2623f899346de0a7619fe9 /core/java/android/app
parentcbf9cb35bb7064f303c6dd9da4485cd5344b6779 (diff)
downloadframeworks_base-648251710162cdaf7371012a1cbb79b9bc5bc0e4.zip
frameworks_base-648251710162cdaf7371012a1cbb79b9bc5bc0e4.tar.gz
frameworks_base-648251710162cdaf7371012a1cbb79b9bc5bc0e4.tar.bz2
Fix issue #3485923: Gmail crash
Allow application to try to recover if a surface OOM error happens on the client side. Change-Id: I0308bd99647a35e4bcac448340b7fc6330a828f6
Diffstat (limited to 'core/java/android/app')
-rw-r--r--core/java/android/app/ActivityManagerNative.java6
-rw-r--r--core/java/android/app/IActivityManager.java2
2 files changed, 5 insertions, 3 deletions
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 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
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 @@ class ActivityManagerProxy implements IActivityManager
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();
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index f42e8fb..61e6fc8 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -250,7 +250,7 @@ public interface IActivityManager extends IInterface {
public void noteWakeupAlarm(IIntentSender sender) throws RemoteException;
- public boolean killPids(int[] pids, String reason) throws RemoteException;
+ public boolean killPids(int[] pids, String reason, boolean secure) throws RemoteException;
// Special low-level communication with activity manager.
public void startRunning(String pkg, String cls, String action,