summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/os/Process.java6
-rw-r--r--core/java/android/view/HardwareRenderer.java12
-rw-r--r--core/java/android/view/IAssetAtlas.aidl7
3 files changed, 20 insertions, 5 deletions
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 476b4ea..93b1255 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -650,6 +650,12 @@ public class Process {
public static final native int myPid();
/**
+ * Returns the identifier of this process' parent.
+ * @hide
+ */
+ public static native int myPpid();
+
+ /**
* Returns the identifier of the calling thread, which be used with
* {@link #setThreadPriority(int, int)}.
*/
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index 8dada90..c07b187 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -1931,11 +1931,13 @@ public abstract class HardwareRenderer {
IAssetAtlas atlas = IAssetAtlas.Stub.asInterface(binder);
try {
- GraphicBuffer buffer = atlas.getBuffer();
- if (buffer != null) {
- int[] map = atlas.getMap();
- if (map != null) {
- GLES20Canvas.initAtlas(buffer, map);
+ if (atlas.isCompatible(android.os.Process.myPpid())) {
+ GraphicBuffer buffer = atlas.getBuffer();
+ if (buffer != null) {
+ int[] map = atlas.getMap();
+ if (map != null) {
+ GLES20Canvas.initAtlas(buffer, map);
+ }
}
}
} catch (RemoteException e) {
diff --git a/core/java/android/view/IAssetAtlas.aidl b/core/java/android/view/IAssetAtlas.aidl
index 2595179..5f1e238 100644
--- a/core/java/android/view/IAssetAtlas.aidl
+++ b/core/java/android/view/IAssetAtlas.aidl
@@ -28,6 +28,13 @@ import android.view.GraphicBuffer;
*/
interface IAssetAtlas {
/**
+ * Indicates whether the atlas is compatible with the specified
+ * parent process id. If the atlas' ppid does not match, this
+ * method will return false.
+ */
+ boolean isCompatible(int ppid);
+
+ /**
* Returns the atlas buffer (texture) or null if the atlas is
* not available yet.
*/