Chromium Code Reviews| Index: content/app/android/child_process_service.cc |
| diff --git a/content/app/android/child_process_service.cc b/content/app/android/child_process_service.cc |
| index 0a78803c026af47bac21374a1a16cceb9ed51f1a..e8c8e47af65c7ba793cc29f79870e96d22a0d165 100644 |
| --- a/content/app/android/child_process_service.cc |
| +++ b/content/app/android/child_process_service.cc |
| @@ -72,8 +72,12 @@ class SurfaceTexturePeerChildImpl : public SurfaceTexturePeer, |
| if (surface.j_surface().is_null()) |
| return NULL; |
| - ANativeWindow* native_window = ANativeWindow_fromSurface( |
| - env, surface.j_surface().obj()); |
| + // Note: This ensures that any local references used by |
| + // ANativeWindow_fromSurface are released immediately. |
| + base::android::ScopedJavaLocalFrame scoped_local_reference_frame(env); |
| + |
| + ANativeWindow* native_window = |
| + ANativeWindow_fromSurface(env, surface.j_surface().obj()); |
| return native_window; |
| } |
| @@ -90,6 +94,10 @@ class SurfaceTexturePeerChildImpl : public SurfaceTexturePeer, |
| if (surface.j_surface().is_null()) |
| return NULL; |
| + // Note: This ensures that any local references used by |
| + // ANativeWindow_fromSurface are released immediately. |
| + base::android::ScopedJavaLocalFrame scoped_local_reference_frame(env); |
|
reveman
2014/04/04 16:18:32
We might want to land this separately from the bas
|
| + |
| ANativeWindow* native_window = |
| ANativeWindow_fromSurface(env, surface.j_surface().obj()); |