am b14d771c: am f579bb92: am cde433c5: Merge "Fixing a race condition in RSSurfaceView. Bug 5601083 When destroy is called shortly after creation, RS tries to set a surface on a partially destroyed context." into ics-mr1

* commit 'b14d771cf07479e3186a167a219fb2d42d8d4d30':
  Fixing a race condition in RSSurfaceView. Bug 5601083 When destroy is called shortly after creation, RS tries to set a surface on a partially destroyed context.
diff --git a/graphics/java/android/renderscript/RSSurfaceView.java b/graphics/java/android/renderscript/RSSurfaceView.java
index 199952c..20eb93f 100644
--- a/graphics/java/android/renderscript/RSSurfaceView.java
+++ b/graphics/java/android/renderscript/RSSurfaceView.java
@@ -30,7 +30,7 @@
 import android.view.SurfaceView;
 
 /**
- * The Surface View for a graphics renderscript (RenderScriptGL) to draw on. 
+ * The Surface View for a graphics renderscript (RenderScriptGL) to draw on.
  */
 public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback {
     private SurfaceHolder mSurfaceHolder;
@@ -77,7 +77,7 @@
      * This method is part of the SurfaceHolder.Callback interface, and is
      * not normally called or subclassed by clients of RSSurfaceView.
      */
-    public void surfaceDestroyed(SurfaceHolder holder) {
+    public synchronized void surfaceDestroyed(SurfaceHolder holder) {
         // Surface will be destroyed when we return
         if (mRS != null) {
             mRS.setSurface(null, 0, 0);
@@ -88,7 +88,7 @@
      * This method is part of the SurfaceHolder.Callback interface, and is
      * not normally called or subclassed by clients of RSSurfaceView.
      */
-    public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
+    public synchronized void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
         if (mRS != null) {
             mRS.setSurface(holder, w, h);
         }
@@ -125,7 +125,7 @@
         return rs;
     }
 
-    public void destroyRenderScriptGL() {
+    public synchronized void destroyRenderScriptGL() {
         mRS.destroy();
         mRS = null;
     }