Only destroy remote graphic buffers
Bug #9795157

Change-Id: Ia7a39d3ef40994fede185482a5b4ca5500249b34
diff --git a/core/java/android/view/HardwareRenderer.java b/core/java/android/view/HardwareRenderer.java
index d9e4600..ba64f6b 100644
--- a/core/java/android/view/HardwareRenderer.java
+++ b/core/java/android/view/HardwareRenderer.java
@@ -1983,7 +1983,12 @@
                         if (map != null) {
                             GLES20Canvas.initAtlas(buffer, map);
                         }
-                        buffer.destroy();
+                        // If IAssetAtlas is not the same class as the IBinder
+                        // we are using a remote service and we can safely
+                        // destroy the graphic buffer
+                        if (atlas.getClass() != binder.getClass()) {
+                            buffer.destroy();
+                        }
                     }
                 }
             } catch (RemoteException e) {
@@ -1994,7 +1999,7 @@
         @Override
         boolean canDraw() {
             return super.canDraw() && mGlCanvas != null;
-        }                
+        }
 
         @Override
         int onPreDraw(Rect dirty) {