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 'cde433c5f75fd4ac2ab31e9fc34654750d1e83f8':
  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.
This commit is contained in:
Alex Sakhartchouk
2011-11-14 10:37:21 -08:00
committed by Android Git Automerger

View File

@@ -30,7 +30,7 @@ import android.view.SurfaceHolder;
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 @@ public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback
* 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 @@ public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback
* 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 @@ public class RSSurfaceView extends SurfaceView implements SurfaceHolder.Callback
return rs;
}
public void destroyRenderScriptGL() {
public synchronized void destroyRenderScriptGL() {
mRS.destroy();
mRS = null;
}