Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(468)

Unified Diff: third_party/WebKit/Source/modules/webgl/WebGLProgram.cpp

Issue 2547813002: Remove WebGLObject maps from WebGLRenderingContextBase and WebGLContextGroup. (Closed)
Patch Set: Fixed WebGLContextObject::validate. Made WebGLExtension non-finalized. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/modules/webgl/WebGLProgram.cpp
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLProgram.cpp b/third_party/WebKit/Source/modules/webgl/WebGLProgram.cpp
index e75362f0fb60bab485e661aa5678587ef35aea74..2857fb2893f54f13e49f0ddde583954133ef593d 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLProgram.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGLProgram.cpp
@@ -47,27 +47,21 @@ WebGLProgram::WebGLProgram(WebGLRenderingContextBase* ctx)
}
WebGLProgram::~WebGLProgram() {
- // These heap objects handle detachment on their own. Clear out
- // the references to prevent deleteObjectImpl() from trying to do
- // same, as we cannot safely access other heap objects from this
- // destructor.
- m_vertexShader = nullptr;
- m_fragmentShader = nullptr;
-
- // See the comment in WebGLObject::detachAndDeleteObject().
- detachAndDeleteObject();
+ runDestructor();
}
void WebGLProgram::deleteObjectImpl(gpu::gles2::GLES2Interface* gl) {
gl->DeleteProgram(m_object);
m_object = 0;
- if (m_vertexShader) {
- m_vertexShader->onDetached(gl);
- m_vertexShader = nullptr;
- }
- if (m_fragmentShader) {
- m_fragmentShader->onDetached(gl);
- m_fragmentShader = nullptr;
+ if (!destructionInProgress()) {
+ if (m_vertexShader) {
+ m_vertexShader->onDetached(gl);
+ m_vertexShader = nullptr;
+ }
+ if (m_fragmentShader) {
+ m_fragmentShader->onDetached(gl);
+ m_fragmentShader = nullptr;
+ }
}
}

Powered by Google App Engine
This is Rietveld 408576698