Diff
Modified: branches/safari-604-branch/Source/WebCore/ChangeLog (223663 => 223664)
--- branches/safari-604-branch/Source/WebCore/ChangeLog 2017-10-19 04:30:05 UTC (rev 223663)
+++ branches/safari-604-branch/Source/WebCore/ChangeLog 2017-10-19 04:30:08 UTC (rev 223664)
@@ -1,5 +1,40 @@
2017-10-18 Jason Marcell <[email protected]>
+ Cherry-pick r221971. rdar://problem/34958928
+
+ 2017-09-13 Ms2ger <[email protected]>
+
+ Make WebGLRenderingContextBase::TypedList::data() const-correct.
+ https://bugs.webkit.org/show_bug.cgi?id=176833
+
+ Reviewed by Sam Weinig.
+
+ No change of behavior.
+
+ * html/canvas/WebGLRenderingContextBase.cpp:
+ (WebCore::WebGLRenderingContextBase::validateUniformMatrixParameters):
+ * html/canvas/WebGLRenderingContextBase.h:
+ (WebCore::WebGLRenderingContextBase::TypedList::data const):
+ * platform/graphics/GraphicsContext3D.h:
+ * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
+ (WebCore::GraphicsContext3D::uniform1fv):
+ (WebCore::GraphicsContext3D::uniform2fv):
+ (WebCore::GraphicsContext3D::uniform3fv):
+ (WebCore::GraphicsContext3D::uniform4fv):
+ (WebCore::GraphicsContext3D::uniform1iv):
+ (WebCore::GraphicsContext3D::uniform2iv):
+ (WebCore::GraphicsContext3D::uniform3iv):
+ (WebCore::GraphicsContext3D::uniform4iv):
+ (WebCore::GraphicsContext3D::uniformMatrix2fv):
+ (WebCore::GraphicsContext3D::uniformMatrix3fv):
+ (WebCore::GraphicsContext3D::uniformMatrix4fv):
+ (WebCore::GraphicsContext3D::vertexAttrib1fv):
+ (WebCore::GraphicsContext3D::vertexAttrib2fv):
+ (WebCore::GraphicsContext3D::vertexAttrib3fv):
+ (WebCore::GraphicsContext3D::vertexAttrib4fv):
+
+2017-10-18 Jason Marcell <[email protected]>
+
Cherry-pick r223315. rdar://problem/34985202
2017-10-13 Jer Noble <[email protected]>
Modified: branches/safari-604-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp (223663 => 223664)
--- branches/safari-604-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp 2017-10-19 04:30:05 UTC (rev 223663)
+++ branches/safari-604-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp 2017-10-19 04:30:08 UTC (rev 223664)
@@ -5273,7 +5273,7 @@
return validateUniformMatrixParameters(functionName, location, transpose, v.data(), v.length(), requiredMinSize);
}
-bool WebGLRenderingContextBase::validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation* location, GC3Dboolean transpose, void* v, GC3Dsizei size, GC3Dsizei requiredMinSize)
+bool WebGLRenderingContextBase::validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation* location, GC3Dboolean transpose, const void* v, GC3Dsizei size, GC3Dsizei requiredMinSize)
{
if (!location)
return false;
Modified: branches/safari-604-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.h (223663 => 223664)
--- branches/safari-604-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.h 2017-10-19 04:30:05 UTC (rev 223663)
+++ branches/safari-604-branch/Source/WebCore/html/canvas/WebGLRenderingContextBase.h 2017-10-19 04:30:08 UTC (rev 223664)
@@ -269,11 +269,11 @@
{
}
- DataType* data() const
+ const DataType* data() const
{
return WTF::switchOn(m_variant,
- [] (const RefPtr<TypedArray>& typedArray) -> DataType* { return typedArray->data(); },
- [] (const Vector<DataType>& vector) -> DataType* { return const_cast<Vector<DataType>&>(vector).data(); }
+ [] (const RefPtr<TypedArray>& typedArray) -> const DataType* { return typedArray->data(); },
+ [] (const Vector<DataType>& vector) -> const DataType* { return vector.data(); }
);
}
@@ -779,7 +779,7 @@
bool validateUniformParameters(const char* functionName, const WebGLUniformLocation*, const Int32List&, GC3Dsizei mod);
bool validateUniformParameters(const char* functionName, const WebGLUniformLocation*, void*, GC3Dsizei, GC3Dsizei mod);
bool validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation*, GC3Dboolean transpose, const Float32List&, GC3Dsizei mod);
- bool validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation*, GC3Dboolean transpose, void*, GC3Dsizei, GC3Dsizei mod);
+ bool validateUniformMatrixParameters(const char* functionName, const WebGLUniformLocation*, GC3Dboolean transpose, const void*, GC3Dsizei, GC3Dsizei mod);
// Helper function to validate parameters for bufferData.
// Return the current bound buffer to target, or 0 if parameters are invalid.
Modified: branches/safari-604-branch/Source/WebCore/platform/graphics/GraphicsContext3D.h (223663 => 223664)
--- branches/safari-604-branch/Source/WebCore/platform/graphics/GraphicsContext3D.h 2017-10-19 04:30:05 UTC (rev 223663)
+++ branches/safari-604-branch/Source/WebCore/platform/graphics/GraphicsContext3D.h 2017-10-19 04:30:08 UTC (rev 223664)
@@ -1078,24 +1078,24 @@
void texSubImage2D(GC3Denum target, GC3Dint level, GC3Dint xoffset, GC3Dint yoffset, GC3Dsizei width, GC3Dsizei height, GC3Denum format, GC3Denum type, const void* pixels);
void uniform1f(GC3Dint location, GC3Dfloat x);
- void uniform1fv(GC3Dint location, GC3Dsizei, GC3Dfloat* v);
+ void uniform1fv(GC3Dint location, GC3Dsizei, const GC3Dfloat* v);
void uniform1i(GC3Dint location, GC3Dint x);
- void uniform1iv(GC3Dint location, GC3Dsizei, GC3Dint* v);
+ void uniform1iv(GC3Dint location, GC3Dsizei, const GC3Dint* v);
void uniform2f(GC3Dint location, GC3Dfloat x, GC3Dfloat y);
- void uniform2fv(GC3Dint location, GC3Dsizei, GC3Dfloat* v);
+ void uniform2fv(GC3Dint location, GC3Dsizei, const GC3Dfloat* v);
void uniform2i(GC3Dint location, GC3Dint x, GC3Dint y);
- void uniform2iv(GC3Dint location, GC3Dsizei, GC3Dint* v);
+ void uniform2iv(GC3Dint location, GC3Dsizei, const GC3Dint* v);
void uniform3f(GC3Dint location, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z);
- void uniform3fv(GC3Dint location, GC3Dsizei, GC3Dfloat* v);
+ void uniform3fv(GC3Dint location, GC3Dsizei, const GC3Dfloat* v);
void uniform3i(GC3Dint location, GC3Dint x, GC3Dint y, GC3Dint z);
- void uniform3iv(GC3Dint location, GC3Dsizei, GC3Dint* v);
+ void uniform3iv(GC3Dint location, GC3Dsizei, const GC3Dint* v);
void uniform4f(GC3Dint location, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat w);
- void uniform4fv(GC3Dint location, GC3Dsizei, GC3Dfloat* v);
+ void uniform4fv(GC3Dint location, GC3Dsizei, const GC3Dfloat* v);
void uniform4i(GC3Dint location, GC3Dint x, GC3Dint y, GC3Dint z, GC3Dint w);
- void uniform4iv(GC3Dint location, GC3Dsizei, GC3Dint* v);
- void uniformMatrix2fv(GC3Dint location, GC3Dsizei, GC3Dboolean transpose, GC3Dfloat* value);
- void uniformMatrix3fv(GC3Dint location, GC3Dsizei, GC3Dboolean transpose, GC3Dfloat* value);
- void uniformMatrix4fv(GC3Dint location, GC3Dsizei, GC3Dboolean transpose, GC3Dfloat* value);
+ void uniform4iv(GC3Dint location, GC3Dsizei, const GC3Dint* v);
+ void uniformMatrix2fv(GC3Dint location, GC3Dsizei, GC3Dboolean transpose, const GC3Dfloat* value);
+ void uniformMatrix3fv(GC3Dint location, GC3Dsizei, GC3Dboolean transpose, const GC3Dfloat* value);
+ void uniformMatrix4fv(GC3Dint location, GC3Dsizei, GC3Dboolean transpose, const GC3Dfloat* value);
void useProgram(Platform3DObject);
void validateProgram(Platform3DObject);
@@ -1103,13 +1103,13 @@
bool precisionsMatch(Platform3DObject vertexShader, Platform3DObject fragmentShader) const;
void vertexAttrib1f(GC3Duint index, GC3Dfloat x);
- void vertexAttrib1fv(GC3Duint index, GC3Dfloat* values);
+ void vertexAttrib1fv(GC3Duint index, const GC3Dfloat* values);
void vertexAttrib2f(GC3Duint index, GC3Dfloat x, GC3Dfloat y);
- void vertexAttrib2fv(GC3Duint index, GC3Dfloat* values);
+ void vertexAttrib2fv(GC3Duint index, const GC3Dfloat* values);
void vertexAttrib3f(GC3Duint index, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z);
- void vertexAttrib3fv(GC3Duint index, GC3Dfloat* values);
+ void vertexAttrib3fv(GC3Duint index, const GC3Dfloat* values);
void vertexAttrib4f(GC3Duint index, GC3Dfloat x, GC3Dfloat y, GC3Dfloat z, GC3Dfloat w);
- void vertexAttrib4fv(GC3Duint index, GC3Dfloat* values);
+ void vertexAttrib4fv(GC3Duint index, const GC3Dfloat* values);
void vertexAttribPointer(GC3Duint index, GC3Dint size, GC3Denum type, GC3Dboolean normalized,
GC3Dsizei stride, GC3Dintptr offset);
Modified: branches/safari-604-branch/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp (223663 => 223664)
--- branches/safari-604-branch/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp 2017-10-19 04:30:05 UTC (rev 223663)
+++ branches/safari-604-branch/Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp 2017-10-19 04:30:08 UTC (rev 223664)
@@ -1329,7 +1329,7 @@
::glUniform1f(location, v0);
}
-void GraphicsContext3D::uniform1fv(GC3Dint location, GC3Dsizei size, GC3Dfloat* array)
+void GraphicsContext3D::uniform1fv(GC3Dint location, GC3Dsizei size, const GC3Dfloat* array)
{
makeContextCurrent();
::glUniform1fv(location, size, array);
@@ -1341,7 +1341,7 @@
::glUniform2f(location, v0, v1);
}
-void GraphicsContext3D::uniform2fv(GC3Dint location, GC3Dsizei size, GC3Dfloat* array)
+void GraphicsContext3D::uniform2fv(GC3Dint location, GC3Dsizei size, const GC3Dfloat* array)
{
// FIXME: length needs to be a multiple of 2.
makeContextCurrent();
@@ -1354,7 +1354,7 @@
::glUniform3f(location, v0, v1, v2);
}
-void GraphicsContext3D::uniform3fv(GC3Dint location, GC3Dsizei size, GC3Dfloat* array)
+void GraphicsContext3D::uniform3fv(GC3Dint location, GC3Dsizei size, const GC3Dfloat* array)
{
// FIXME: length needs to be a multiple of 3.
makeContextCurrent();
@@ -1367,7 +1367,7 @@
::glUniform4f(location, v0, v1, v2, v3);
}
-void GraphicsContext3D::uniform4fv(GC3Dint location, GC3Dsizei size, GC3Dfloat* array)
+void GraphicsContext3D::uniform4fv(GC3Dint location, GC3Dsizei size, const GC3Dfloat* array)
{
// FIXME: length needs to be a multiple of 4.
makeContextCurrent();
@@ -1380,7 +1380,7 @@
::glUniform1i(location, v0);
}
-void GraphicsContext3D::uniform1iv(GC3Dint location, GC3Dsizei size, GC3Dint* array)
+void GraphicsContext3D::uniform1iv(GC3Dint location, GC3Dsizei size, const GC3Dint* array)
{
makeContextCurrent();
::glUniform1iv(location, size, array);
@@ -1392,7 +1392,7 @@
::glUniform2i(location, v0, v1);
}
-void GraphicsContext3D::uniform2iv(GC3Dint location, GC3Dsizei size, GC3Dint* array)
+void GraphicsContext3D::uniform2iv(GC3Dint location, GC3Dsizei size, const GC3Dint* array)
{
// FIXME: length needs to be a multiple of 2.
makeContextCurrent();
@@ -1405,7 +1405,7 @@
::glUniform3i(location, v0, v1, v2);
}
-void GraphicsContext3D::uniform3iv(GC3Dint location, GC3Dsizei size, GC3Dint* array)
+void GraphicsContext3D::uniform3iv(GC3Dint location, GC3Dsizei size, const GC3Dint* array)
{
// FIXME: length needs to be a multiple of 3.
makeContextCurrent();
@@ -1418,7 +1418,7 @@
::glUniform4i(location, v0, v1, v2, v3);
}
-void GraphicsContext3D::uniform4iv(GC3Dint location, GC3Dsizei size, GC3Dint* array)
+void GraphicsContext3D::uniform4iv(GC3Dint location, GC3Dsizei size, const GC3Dint* array)
{
// FIXME: length needs to be a multiple of 4.
makeContextCurrent();
@@ -1425,7 +1425,7 @@
::glUniform4iv(location, size, array);
}
-void GraphicsContext3D::uniformMatrix2fv(GC3Dint location, GC3Dsizei size, GC3Dboolean transpose, GC3Dfloat* array)
+void GraphicsContext3D::uniformMatrix2fv(GC3Dint location, GC3Dsizei size, GC3Dboolean transpose, const GC3Dfloat* array)
{
// FIXME: length needs to be a multiple of 4.
makeContextCurrent();
@@ -1432,7 +1432,7 @@
::glUniformMatrix2fv(location, size, transpose, array);
}
-void GraphicsContext3D::uniformMatrix3fv(GC3Dint location, GC3Dsizei size, GC3Dboolean transpose, GC3Dfloat* array)
+void GraphicsContext3D::uniformMatrix3fv(GC3Dint location, GC3Dsizei size, GC3Dboolean transpose, const GC3Dfloat* array)
{
// FIXME: length needs to be a multiple of 9.
makeContextCurrent();
@@ -1439,7 +1439,7 @@
::glUniformMatrix3fv(location, size, transpose, array);
}
-void GraphicsContext3D::uniformMatrix4fv(GC3Dint location, GC3Dsizei size, GC3Dboolean transpose, GC3Dfloat* array)
+void GraphicsContext3D::uniformMatrix4fv(GC3Dint location, GC3Dsizei size, GC3Dboolean transpose, const GC3Dfloat* array)
{
// FIXME: length needs to be a multiple of 16.
makeContextCurrent();
@@ -1466,7 +1466,7 @@
::glVertexAttrib1f(index, v0);
}
-void GraphicsContext3D::vertexAttrib1fv(GC3Duint index, GC3Dfloat* array)
+void GraphicsContext3D::vertexAttrib1fv(GC3Duint index, const GC3Dfloat* array)
{
makeContextCurrent();
::glVertexAttrib1fv(index, array);
@@ -1478,7 +1478,7 @@
::glVertexAttrib2f(index, v0, v1);
}
-void GraphicsContext3D::vertexAttrib2fv(GC3Duint index, GC3Dfloat* array)
+void GraphicsContext3D::vertexAttrib2fv(GC3Duint index, const GC3Dfloat* array)
{
makeContextCurrent();
::glVertexAttrib2fv(index, array);
@@ -1490,7 +1490,7 @@
::glVertexAttrib3f(index, v0, v1, v2);
}
-void GraphicsContext3D::vertexAttrib3fv(GC3Duint index, GC3Dfloat* array)
+void GraphicsContext3D::vertexAttrib3fv(GC3Duint index, const GC3Dfloat* array)
{
makeContextCurrent();
::glVertexAttrib3fv(index, array);
@@ -1502,7 +1502,7 @@
::glVertexAttrib4f(index, v0, v1, v2, v3);
}
-void GraphicsContext3D::vertexAttrib4fv(GC3Duint index, GC3Dfloat* array)
+void GraphicsContext3D::vertexAttrib4fv(GC3Duint index, const GC3Dfloat* array)
{
makeContextCurrent();
::glVertexAttrib4fv(index, array);