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

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

Issue 2401893002: [wrapper-tracing] WebGL and friends: Add write barriers (Closed)
Patch Set: Created 4 years, 2 months 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/WebGLRenderingContextBase.cpp
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
index 2844f45682b8ab3a4195f816f74bd025998e89e4..de9f4f667a8a94ad08b6cfbfcb129cafa9c1f764 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp
@@ -27,6 +27,7 @@
#include "bindings/core/v8/ExceptionMessages.h"
#include "bindings/core/v8/ExceptionState.h"
+#include "bindings/core/v8/ScriptWrappableVisitor.h"
#include "bindings/core/v8/V8BindingMacros.h"
#include "bindings/modules/v8/HTMLCanvasElementOrOffscreenCanvas.h"
#include "bindings/modules/v8/WebGLAny.h"
@@ -1136,6 +1137,7 @@ void WebGLRenderingContextBase::initializeNewContext() {
addContextObject(m_defaultVertexArrayObject.get());
m_boundVertexArrayObject = m_defaultVertexArrayObject;
+ ScriptWrappableVisitor::writeBarrier(this, m_boundVertexArrayObject);
m_vertexAttribType.resize(m_maxVertexAttribs);
@@ -1661,6 +1663,7 @@ bool WebGLRenderingContextBase::validateAndUpdateBufferBindTarget(
switch (target) {
case GL_ARRAY_BUFFER:
m_boundArrayBuffer = buffer;
+ ScriptWrappableVisitor::writeBarrier(this, m_boundArrayBuffer);
break;
case GL_ELEMENT_ARRAY_BUFFER:
m_boundVertexArrayObject->setElementArrayBuffer(buffer);
@@ -1728,6 +1731,7 @@ void WebGLRenderingContextBase::bindRenderbuffer(
return;
}
m_renderbufferBinding = renderBuffer;
+ ScriptWrappableVisitor::writeBarrier(this, m_renderbufferBinding);
contextGL()->BindRenderbuffer(target, objectOrZero(renderBuffer));
drawingBuffer()->setRenderbufferBinding(objectOrZero(renderBuffer));
@@ -1767,6 +1771,7 @@ void WebGLRenderingContextBase::bindTexture(GLenum target,
synthesizeGLError(GL_INVALID_ENUM, "bindTexture", "invalid target");
return;
}
+ ScriptWrappableVisitor::writeBarrier(this, texture);
contextGL()->BindTexture(target, objectOrZero(texture));
if (texture) {
@@ -2219,6 +2224,7 @@ void WebGLRenderingContextBase::setBoundVertexArrayObject(
m_boundVertexArrayObject = arrayObject;
else
m_boundVertexArrayObject = m_defaultVertexArrayObject;
+ ScriptWrappableVisitor::writeBarrier(this, m_boundVertexArrayObject);
}
WebGLShader* WebGLRenderingContextBase::createShader(GLenum type) {
@@ -5722,6 +5728,7 @@ void WebGLRenderingContextBase::useProgram(WebGLProgram* program) {
if (m_currentProgram)
m_currentProgram->onDetached(contextGL());
m_currentProgram = program;
+ ScriptWrappableVisitor::writeBarrier(this, m_currentProgram);
contextGL()->UseProgram(objectOrZero(program));
if (program)
program->onAttached();
@@ -7406,6 +7413,7 @@ void WebGLRenderingContextBase::setFramebuffer(GLenum target,
if (target == GL_FRAMEBUFFER || target == GL_DRAW_FRAMEBUFFER) {
m_framebufferBinding = buffer;
+ ScriptWrappableVisitor::writeBarrier(this, m_framebufferBinding);
applyStencilTest();
}
drawingBuffer()->setFramebufferBinding(

Powered by Google App Engine
This is Rietveld 408576698