Index: Source/modules/webgl/WebGLRenderingContextBase.cpp |
diff --git a/Source/modules/webgl/WebGLRenderingContextBase.cpp b/Source/modules/webgl/WebGLRenderingContextBase.cpp |
index 57a2710ce377d35426d4115188a21ba2f0fa8dfd..ba9ff623c3e6cf5a7713f0ad41cbdd509300f632 100644 |
--- a/Source/modules/webgl/WebGLRenderingContextBase.cpp |
+++ b/Source/modules/webgl/WebGLRenderingContextBase.cpp |
@@ -246,7 +246,7 @@ public: |
private: |
DrawingBuffer* m_drawingBuffer; |
- RawPtrWillBeMember<WebGLFramebuffer> m_readFramebufferBinding; |
+ Member<WebGLFramebuffer> m_readFramebufferBinding; |
}; |
GLint clamp(GLint value, GLint min, GLint max) |
@@ -501,12 +501,11 @@ private: |
RawPtrWillBeMember<WebGLRenderingContextBase> m_context; |
}; |
-class WebGLRenderingContextLostCallback final : public NoBaseWillBeGarbageCollectedFinalized<WebGLRenderingContextLostCallback>, public WebGraphicsContext3D::WebGraphicsContextLostCallback { |
- WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(WebGLRenderingContextLostCallback); |
+class WebGLRenderingContextLostCallback final : public GarbageCollectedFinalized<WebGLRenderingContextLostCallback>, public WebGraphicsContext3D::WebGraphicsContextLostCallback { |
public: |
- static PassOwnPtrWillBeRawPtr<WebGLRenderingContextLostCallback> create(WebGLRenderingContextBase* context) |
+ static WebGLRenderingContextLostCallback* create(WebGLRenderingContextBase* context) |
{ |
- return adoptPtrWillBeNoop(new WebGLRenderingContextLostCallback(context)); |
+ return new WebGLRenderingContextLostCallback(context); |
} |
~WebGLRenderingContextLostCallback() override { } |
@@ -525,12 +524,11 @@ private: |
RawPtrWillBeMember<WebGLRenderingContextBase> m_context; |
}; |
-class WebGLRenderingContextErrorMessageCallback final : public NoBaseWillBeGarbageCollectedFinalized<WebGLRenderingContextErrorMessageCallback>, public WebGraphicsContext3D::WebGraphicsErrorMessageCallback { |
- WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED(WebGLRenderingContextErrorMessageCallback); |
+class WebGLRenderingContextErrorMessageCallback final : public GarbageCollectedFinalized<WebGLRenderingContextErrorMessageCallback>, public WebGraphicsContext3D::WebGraphicsErrorMessageCallback { |
public: |
- static PassOwnPtrWillBeRawPtr<WebGLRenderingContextErrorMessageCallback> create(WebGLRenderingContextBase* context) |
+ static WebGLRenderingContextErrorMessageCallback* create(WebGLRenderingContextBase* context) |
{ |
- return adoptPtrWillBeNoop(new WebGLRenderingContextErrorMessageCallback(context)); |
+ return new WebGLRenderingContextErrorMessageCallback(context); |
} |
~WebGLRenderingContextErrorMessageCallback() override { } |
@@ -1121,6 +1119,9 @@ WebGLRenderingContextBase::~WebGLRenderingContextBase() |
detachAndRemoveAllObjects(); |
// Release all extensions now. |
+ for (ExtensionTracker* tracker : m_extensions) { |
+ tracker->loseExtension(true); |
+ } |
m_extensions.clear(); |
// Context must be removed from the group prior to the destruction of the |
@@ -1930,49 +1931,49 @@ void WebGLRenderingContextBase::copyTexSubImage2D(GLenum target, GLint level, GL |
webContext()->copyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); |
} |
-PassRefPtrWillBeRawPtr<WebGLBuffer> WebGLRenderingContextBase::createBuffer() |
+WebGLBuffer* WebGLRenderingContextBase::createBuffer() |
{ |
if (isContextLost()) |
return nullptr; |
- RefPtrWillBeRawPtr<WebGLBuffer> o = WebGLBuffer::create(this); |
- addSharedObject(o.get()); |
- return o.release(); |
+ WebGLBuffer* o = WebGLBuffer::create(this); |
+ addSharedObject(o); |
+ return o; |
} |
-PassRefPtrWillBeRawPtr<WebGLFramebuffer> WebGLRenderingContextBase::createFramebuffer() |
+WebGLFramebuffer* WebGLRenderingContextBase::createFramebuffer() |
{ |
if (isContextLost()) |
return nullptr; |
- RefPtrWillBeRawPtr<WebGLFramebuffer> o = WebGLFramebuffer::create(this); |
- addContextObject(o.get()); |
- return o.release(); |
+ WebGLFramebuffer* o = WebGLFramebuffer::create(this); |
+ addContextObject(o); |
+ return o; |
} |
-PassRefPtrWillBeRawPtr<WebGLTexture> WebGLRenderingContextBase::createTexture() |
+WebGLTexture* WebGLRenderingContextBase::createTexture() |
{ |
if (isContextLost()) |
return nullptr; |
- RefPtrWillBeRawPtr<WebGLTexture> o = WebGLTexture::create(this); |
- addSharedObject(o.get()); |
- return o.release(); |
+ WebGLTexture* o = WebGLTexture::create(this); |
+ addSharedObject(o); |
+ return o; |
} |
-PassRefPtrWillBeRawPtr<WebGLProgram> WebGLRenderingContextBase::createProgram() |
+WebGLProgram* WebGLRenderingContextBase::createProgram() |
{ |
if (isContextLost()) |
return nullptr; |
- RefPtrWillBeRawPtr<WebGLProgram> o = WebGLProgram::create(this); |
- addSharedObject(o.get()); |
- return o.release(); |
+ WebGLProgram* o = WebGLProgram::create(this); |
+ addSharedObject(o); |
+ return o; |
} |
-PassRefPtrWillBeRawPtr<WebGLRenderbuffer> WebGLRenderingContextBase::createRenderbuffer() |
+WebGLRenderbuffer* WebGLRenderingContextBase::createRenderbuffer() |
{ |
if (isContextLost()) |
return nullptr; |
- RefPtrWillBeRawPtr<WebGLRenderbuffer> o = WebGLRenderbuffer::create(this); |
- addSharedObject(o.get()); |
- return o.release(); |
+ WebGLRenderbuffer* o = WebGLRenderbuffer::create(this); |
+ addSharedObject(o); |
+ return o; |
} |
WebGLRenderbuffer* WebGLRenderingContextBase::ensureEmulatedStencilBuffer(GLenum target, WebGLRenderbuffer* renderbuffer) |
@@ -1987,7 +1988,7 @@ WebGLRenderbuffer* WebGLRenderingContextBase::ensureEmulatedStencilBuffer(GLenum |
return renderbuffer->emulatedStencilBuffer(); |
} |
-PassRefPtrWillBeRawPtr<WebGLShader> WebGLRenderingContextBase::createShader(GLenum type) |
+WebGLShader* WebGLRenderingContextBase::createShader(GLenum type) |
{ |
if (isContextLost()) |
return nullptr; |
@@ -1996,9 +1997,9 @@ PassRefPtrWillBeRawPtr<WebGLShader> WebGLRenderingContextBase::createShader(GLen |
return nullptr; |
} |
- RefPtrWillBeRawPtr<WebGLShader> o = WebGLShader::create(this, type); |
- addSharedObject(o.get()); |
- return o.release(); |
+ WebGLShader* o = WebGLShader::create(this, type); |
+ addSharedObject(o); |
+ return o; |
} |
void WebGLRenderingContextBase::cullFace(GLenum mode) |
@@ -2454,7 +2455,7 @@ void WebGLRenderingContextBase::generateMipmap(GLenum target) |
tex->generateMipmapLevelInfo(); |
} |
-PassRefPtrWillBeRawPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveAttrib(WebGLProgram* program, GLuint index) |
+WebGLActiveInfo* WebGLRenderingContextBase::getActiveAttrib(WebGLProgram* program, GLuint index) |
{ |
if (isContextLost() || !validateWebGLObject("getActiveAttrib", program)) |
return nullptr; |
@@ -2464,7 +2465,7 @@ PassRefPtrWillBeRawPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveAttr |
return WebGLActiveInfo::create(info.name, info.type, info.size); |
} |
-PassRefPtrWillBeRawPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveUniform(WebGLProgram* program, GLuint index) |
+WebGLActiveInfo* WebGLRenderingContextBase::getActiveUniform(WebGLProgram* program, GLuint index) |
{ |
if (isContextLost() || !validateWebGLObject("getActiveUniform", program)) |
return nullptr; |
@@ -2474,12 +2475,12 @@ PassRefPtrWillBeRawPtr<WebGLActiveInfo> WebGLRenderingContextBase::getActiveUnif |
return WebGLActiveInfo::create(info.name, info.type, info.size); |
} |
-Nullable<WillBeHeapVector<RefPtrWillBeMember<WebGLShader>>> WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program) |
+Nullable<HeapVector<Member<WebGLShader>>> WebGLRenderingContextBase::getAttachedShaders(WebGLProgram* program) |
{ |
if (isContextLost() || !validateWebGLObject("getAttachedShaders", program)) |
return nullptr; |
- WillBeHeapVector<RefPtrWillBeMember<WebGLShader>> shaderObjects; |
+ HeapVector<Member<WebGLShader>> shaderObjects; |
const GLenum shaderType[] = { |
GL_VERTEX_SHADER, |
GL_FRAGMENT_SHADER |
@@ -2605,11 +2606,11 @@ bool WebGLRenderingContextBase::extensionSupportedAndAllowed(const ExtensionTrac |
ScriptValue WebGLRenderingContextBase::getExtension(ScriptState* scriptState, const String& name) |
{ |
- RefPtrWillBeRawPtr<WebGLExtension> extension = nullptr; |
+ WebGLExtension* extension = nullptr; |
if (!isContextLost()) { |
for (size_t i = 0; i < m_extensions.size(); ++i) { |
- ExtensionTracker* tracker = m_extensions[i].get(); |
+ ExtensionTracker* tracker = m_extensions[i]; |
if (tracker->matchesNameWithPrefixes(name)) { |
if (extensionSupportedAndAllowed(tracker)) { |
extension = tracker->getExtension(this); |
@@ -2650,7 +2651,7 @@ ScriptValue WebGLRenderingContextBase::getFramebufferAttachmentParameter(ScriptS |
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: |
return WebGLAny(scriptState, GL_TEXTURE); |
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(attachmentObject)); |
+ return WebGLAny(scriptState, attachmentObject); |
case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: |
case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: |
{ |
@@ -2675,7 +2676,7 @@ ScriptValue WebGLRenderingContextBase::getFramebufferAttachmentParameter(ScriptS |
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: |
return WebGLAny(scriptState, GL_RENDERBUFFER); |
case GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(attachmentObject)); |
+ return WebGLAny(scriptState, attachmentObject); |
case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT: |
if (extensionEnabled(EXTsRGBName) || isWebGL2OrHigher()) { |
GLint value = 0; |
@@ -2706,7 +2707,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* scriptState, GL |
case GL_ALPHA_BITS: |
return getIntParameter(scriptState, pname); |
case GL_ARRAY_BUFFER_BINDING: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_boundArrayBuffer.get())); |
+ return WebGLAny(scriptState, m_boundArrayBuffer.get()); |
case GL_BLEND: |
return getBooleanParameter(scriptState, pname); |
case GL_BLEND_COLOR: |
@@ -2736,7 +2737,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* scriptState, GL |
case GL_CULL_FACE_MODE: |
return getUnsignedIntParameter(scriptState, pname); |
case GL_CURRENT_PROGRAM: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_currentProgram.get())); |
+ return WebGLAny(scriptState, m_currentProgram.get()); |
case GL_DEPTH_BITS: |
if (!m_framebufferBinding && !m_requestedAttributes.depth()) |
return WebGLAny(scriptState, intZero); |
@@ -2754,9 +2755,9 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* scriptState, GL |
case GL_DITHER: |
return getBooleanParameter(scriptState, pname); |
case GL_ELEMENT_ARRAY_BUFFER_BINDING: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_boundVertexArrayObject->boundElementArrayBuffer())); |
+ return WebGLAny(scriptState, m_boundVertexArrayObject->boundElementArrayBuffer()); |
case GL_FRAMEBUFFER_BINDING: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_framebufferBinding.get())); |
+ return WebGLAny(scriptState, m_framebufferBinding.get()); |
case GL_FRONT_FACE: |
return getUnsignedIntParameter(scriptState, pname); |
case GL_GENERATE_MIPMAP_HINT: |
@@ -2805,7 +2806,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* scriptState, GL |
case GL_RED_BITS: |
return getIntParameter(scriptState, pname); |
case GL_RENDERBUFFER_BINDING: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_renderbufferBinding.get())); |
+ return WebGLAny(scriptState, m_renderbufferBinding.get()); |
case GL_RENDERER: |
return WebGLAny(scriptState, String("WebKit WebGL")); |
case GL_SAMPLE_BUFFERS: |
@@ -2861,9 +2862,9 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* scriptState, GL |
case GL_SUBPIXEL_BITS: |
return getIntParameter(scriptState, pname); |
case GL_TEXTURE_BINDING_2D: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_textureUnits[m_activeTextureUnit].m_texture2DBinding.get())); |
+ return WebGLAny(scriptState, m_textureUnits[m_activeTextureUnit].m_texture2DBinding.get()); |
case GL_TEXTURE_BINDING_CUBE_MAP: |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_textureUnits[m_activeTextureUnit].m_textureCubeMapBinding.get())); |
+ return WebGLAny(scriptState, m_textureUnits[m_activeTextureUnit].m_textureCubeMapBinding.get()); |
case GL_UNPACK_ALIGNMENT: |
return getIntParameter(scriptState, pname); |
case GC3D_UNPACK_FLIP_Y_WEBGL: |
@@ -2896,7 +2897,7 @@ ScriptValue WebGLRenderingContextBase::getParameter(ScriptState* scriptState, GL |
case GL_VERTEX_ARRAY_BINDING_OES: // OES_vertex_array_object |
if (extensionEnabled(OESVertexArrayObjectName) || isWebGL2OrHigher()) { |
if (!m_boundVertexArrayObject->isDefaultObject()) |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(m_boundVertexArrayObject.get())); |
+ return WebGLAny(scriptState, m_boundVertexArrayObject.get()); |
return ScriptValue::createNull(scriptState); |
} |
synthesizeGLError(GL_INVALID_ENUM, "getParameter", "invalid parameter name, OES_vertex_array_object not enabled"); |
@@ -3048,7 +3049,7 @@ String WebGLRenderingContextBase::getShaderInfoLog(WebGLShader* shader) |
return ensureNotNull(webContext()->getShaderInfoLog(objectOrZero(shader))); |
} |
-PassRefPtrWillBeRawPtr<WebGLShaderPrecisionFormat> WebGLRenderingContextBase::getShaderPrecisionFormat(GLenum shaderType, GLenum precisionType) |
+WebGLShaderPrecisionFormat* WebGLRenderingContextBase::getShaderPrecisionFormat(GLenum shaderType, GLenum precisionType) |
{ |
if (isContextLost()) |
return nullptr; |
@@ -3344,7 +3345,7 @@ ScriptValue WebGLRenderingContextBase::getUniform(ScriptState* scriptState, WebG |
return ScriptValue::createNull(scriptState); |
} |
-PassRefPtrWillBeRawPtr<WebGLUniformLocation> WebGLRenderingContextBase::getUniformLocation(WebGLProgram* program, const String& name) |
+WebGLUniformLocation* WebGLRenderingContextBase::getUniformLocation(WebGLProgram* program, const String& name) |
{ |
if (isContextLost() || !validateWebGLObject("getUniformLocation", program)) |
return nullptr; |
@@ -3382,7 +3383,7 @@ ScriptValue WebGLRenderingContextBase::getVertexAttrib(ScriptState* scriptState, |
case GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: |
if (!state->bufferBinding || !state->bufferBinding->object()) |
return ScriptValue::createNull(scriptState); |
- return WebGLAny(scriptState, PassRefPtrWillBeRawPtr<WebGLObject>(state->bufferBinding.get())); |
+ return WebGLAny(scriptState, state->bufferBinding.get()); |
case GL_VERTEX_ATTRIB_ARRAY_ENABLED: |
return WebGLAny(scriptState, state->enabled); |
case GL_VERTEX_ATTRIB_ARRAY_NORMALIZED: |
@@ -3976,13 +3977,13 @@ void WebGLRenderingContextBase::stencilOpSeparate(GLenum face, GLenum fail, GLen |
webContext()->stencilOpSeparate(face, fail, zfail, zpass); |
} |
-PassRefPtrWillBeRawPtr<CHROMIUMValuebuffer> WebGLRenderingContextBase::createValuebufferCHROMIUM() |
+CHROMIUMValuebuffer* WebGLRenderingContextBase::createValuebufferCHROMIUM() |
{ |
if (isContextLost()) |
return nullptr; |
- RefPtrWillBeRawPtr<CHROMIUMValuebuffer> o = CHROMIUMValuebuffer::create(this); |
- addSharedObject(o.get()); |
- return o.release(); |
+ CHROMIUMValuebuffer* o = CHROMIUMValuebuffer::create(this); |
+ addSharedObject(o); |
+ return o; |
} |
void WebGLRenderingContextBase::deleteValuebufferCHROMIUM(CHROMIUMValuebuffer *valuebuffer) |
@@ -5067,8 +5068,8 @@ void WebGLRenderingContextBase::loseContextImpl(WebGLRenderingContextBase::LostC |
// Lose all the extensions. |
for (size_t i = 0; i < m_extensions.size(); ++i) { |
- ExtensionTracker* tracker = m_extensions[i].get(); |
- tracker->loseExtension(); |
+ ExtensionTracker* tracker = m_extensions[i]; |
+ tracker->loseExtension(false); |
} |
for (size_t i = 0; i < WebGLExtensionNameCount; ++i) |
@@ -5158,7 +5159,9 @@ void WebGLRenderingContextBase::addContextObject(WebGLContextObject* object) |
void WebGLRenderingContextBase::detachAndRemoveAllObjects() |
{ |
while (m_contextObjects.size() > 0) { |
- WillBeHeapHashSet<RawPtrWillBeWeakMember<WebGLContextObject>>::iterator it = m_contextObjects.begin(); |
+ // Following detachContext() will remove the iterated object from |
+ // |m_contextObjects|, and thus we need to look up begin() every time. |
+ auto it = m_contextObjects.begin(); |
(*it)->detachContext(); |
} |
} |
@@ -6060,7 +6063,7 @@ WebGLBuffer* WebGLRenderingContextBase::validateBufferDataTarget(const char* fun |
WebGLBuffer* buffer = nullptr; |
switch (target) { |
case GL_ELEMENT_ARRAY_BUFFER: |
- buffer = m_boundVertexArrayObject->boundElementArrayBuffer().get(); |
+ buffer = m_boundVertexArrayObject->boundElementArrayBuffer(); |
break; |
case GL_ARRAY_BUFFER: |
buffer = m_boundArrayBuffer.get(); |
@@ -6586,7 +6589,6 @@ DEFINE_TRACE(WebGLRenderingContextBase::TextureUnitState) |
DEFINE_TRACE(WebGLRenderingContextBase) |
{ |
-#if ENABLE(OILPAN) |
visitor->trace(m_contextObjects); |
visitor->trace(m_contextLostCallbackAdapter); |
visitor->trace(m_errorMessageCallbackAdapter); |
@@ -6601,9 +6603,7 @@ DEFINE_TRACE(WebGLRenderingContextBase) |
visitor->trace(m_textureUnits); |
visitor->trace(m_blackTexture2D); |
visitor->trace(m_blackTextureCubeMap); |
- visitor->trace(m_requestedAttributes); |
visitor->trace(m_extensions); |
-#endif |
CanvasRenderingContext::trace(visitor); |
} |