Index: android_webview/browser/shared_renderer_state.cc |
diff --git a/android_webview/browser/shared_renderer_state.cc b/android_webview/browser/shared_renderer_state.cc |
index 8845b761cd252c16592d4480003288e53b07de09..582908eb39e699abb54e00ef9294bbd8fe0acc98 100644 |
--- a/android_webview/browser/shared_renderer_state.cc |
+++ b/android_webview/browser/shared_renderer_state.cc |
@@ -23,7 +23,7 @@ SharedRendererState::SharedRendererState( |
client_on_ui_(client), |
weak_factory_on_ui_thread_(this), |
ui_thread_weak_ptr_(weak_factory_on_ui_thread_.GetWeakPtr()), |
- hardware_allowed_(false), |
+ inside_hardware_release_(false), |
share_context_(NULL) { |
DCHECK(ui_loop_->BelongsToCurrentThread()); |
DCHECK(client_on_ui_); |
@@ -62,14 +62,14 @@ scoped_ptr<DrawGLInput> SharedRendererState::PassDrawGLInput() { |
return draw_gl_input_.Pass(); |
} |
-void SharedRendererState::SetHardwareAllowed(bool allowed) { |
+void SharedRendererState::SetInsideHardwareRelease(bool inside) { |
base::AutoLock lock(lock_); |
- hardware_allowed_ = allowed; |
+ inside_hardware_release_ = inside; |
} |
-bool SharedRendererState::IsHardwareAllowed() const { |
+bool SharedRendererState::IsInsideHardwareRelease() const { |
base::AutoLock lock(lock_); |
- return hardware_allowed_; |
+ return inside_hardware_release_; |
} |
void SharedRendererState::SetSharedContext(gpu::GLInProcessContext* context) { |
@@ -103,4 +103,15 @@ bool SharedRendererState::ReturnedResourcesEmpty() const { |
return returned_resources_.empty(); |
} |
+InsideHardwareReleaseReset::InsideHardwareReleaseReset( |
+ SharedRendererState* shared_renderer_state) |
+ : shared_renderer_state_(shared_renderer_state) { |
+ DCHECK(!shared_renderer_state_->IsInsideHardwareRelease()); |
+ shared_renderer_state_->SetInsideHardwareRelease(true); |
+} |
+ |
+InsideHardwareReleaseReset::~InsideHardwareReleaseReset() { |
+ shared_renderer_state_->SetInsideHardwareRelease(false); |
+} |
+ |
} // namespace android_webview |