Changeset 207632 in webkit
- Timestamp:
- Oct 20, 2016 12:17:06 PM (8 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r207631 r207632 1 2016-10-20 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Improve error message when passing a null ArrayBuffer to bufferData() 4 https://bugs.webkit.org/show_bug.cgi?id=163745 5 6 Reviewed by Dean Jackson. 7 8 * fast/canvas/webgl/bufferData-nullable-array-buffer-view-expected.txt: Added. 9 * fast/canvas/webgl/bufferData-nullable-array-buffer-view.html: Added. 10 1 11 2016-10-20 Zalan Bujtas <zalan@apple.com> 2 12 -
trunk/Source/WebCore/ChangeLog
r207631 r207632 1 2016-10-20 Myles C. Maxfield <mmaxfield@apple.com> 2 3 Improve error message when passing a null ArrayBuffer to bufferData() 4 https://bugs.webkit.org/show_bug.cgi?id=163745 5 6 Reviewed by Dean Jackson. 7 8 Test: fast/canvas/webgl/bufferData-nullable-array-buffer-view.html 9 10 Update the idl file to accept a nullable ArrayBuffer, and throw 11 the relevant error with a more helpful error string. 12 13 * html/canvas/WebGLRenderingContextBase.cpp: 14 (WebCore::WebGLRenderingContextBase::bufferData): 15 * html/canvas/WebGLRenderingContextBase.h: 16 * html/canvas/WebGLRenderingContextBase.idl: 17 1 18 2016-10-20 Zalan Bujtas <zalan@apple.com> 2 19 -
trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
r207221 r207632 1076 1076 } 1077 1077 1078 void WebGLRenderingContextBase::bufferData(GC3Denum target, ArrayBuffer& data, GC3Denum usage, ExceptionCode&) 1079 { 1080 if (isContextLostOrPending()) 1081 return; 1078 void WebGLRenderingContextBase::bufferData(GC3Denum target, ArrayBuffer* data, GC3Denum usage, ExceptionCode&) 1079 { 1080 if (isContextLostOrPending()) 1081 return; 1082 if (!data) { 1083 synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "null data"); 1084 return; 1085 } 1082 1086 WebGLBuffer* buffer = validateBufferDataParameters("bufferData", target, usage); 1083 1087 if (!buffer) 1084 1088 return; 1085 1089 if (!isErrorGeneratedOnOutOfBoundsAccesses()) { 1086 if (!buffer->associateBufferData( &data)) {1090 if (!buffer->associateBufferData(data)) { 1087 1091 synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "invalid buffer"); 1088 1092 return; … … 1091 1095 1092 1096 m_context->moveErrorsToSyntheticErrorList(); 1093 m_context->bufferData(target, data .byteLength(), data.data(), usage);1097 m_context->bufferData(target, data->byteLength(), data->data(), usage); 1094 1098 if (m_context->moveErrorsToSyntheticErrorList()) { 1095 1099 // The bufferData function failed. Tell the buffer it doesn't have the data it thinks it does. … … 1098 1102 } 1099 1103 1100 void WebGLRenderingContextBase::bufferData(GC3Denum target, ArrayBufferView& data, GC3Denum usage, ExceptionCode&) 1101 { 1102 if (isContextLostOrPending()) 1103 return; 1104 void WebGLRenderingContextBase::bufferData(GC3Denum target, RefPtr<ArrayBufferView>&& data, GC3Denum usage, ExceptionCode&) 1105 { 1106 if (isContextLostOrPending()) 1107 return; 1108 if (!data) { 1109 synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "null data"); 1110 return; 1111 } 1104 1112 WebGLBuffer* buffer = validateBufferDataParameters("bufferData", target, usage); 1105 1113 if (!buffer) 1106 1114 return; 1107 1115 if (!isErrorGeneratedOnOutOfBoundsAccesses()) { 1108 if (!buffer->associateBufferData( &data)) {1116 if (!buffer->associateBufferData(data.get())) { 1109 1117 synthesizeGLError(GraphicsContext3D::INVALID_VALUE, "bufferData", "invalid buffer"); 1110 1118 return; … … 1113 1121 1114 1122 m_context->moveErrorsToSyntheticErrorList(); 1115 m_context->bufferData(target, data .byteLength(), data.baseAddress(), usage);1123 m_context->bufferData(target, data->byteLength(), data->baseAddress(), usage); 1116 1124 if (m_context->moveErrorsToSyntheticErrorList()) { 1117 1125 // The bufferData function failed. Tell the buffer it doesn't have the data it thinks it does. -
trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
r205360 r207632 140 140 141 141 void bufferData(GC3Denum target, long long size, GC3Denum usage, ExceptionCode&); 142 void bufferData(GC3Denum target, ArrayBuffer &data, GC3Denum usage, ExceptionCode&);143 void bufferData(GC3Denum target, ArrayBufferView& data, GC3Denum usage, ExceptionCode&);142 void bufferData(GC3Denum target, ArrayBuffer* data, GC3Denum usage, ExceptionCode&); 143 void bufferData(GC3Denum target, RefPtr<ArrayBufferView>&& data, GC3Denum usage, ExceptionCode&); 144 144 void bufferSubData(GC3Denum target, long long offset, ArrayBuffer* data, ExceptionCode&); 145 145 void bufferSubData(GC3Denum target, long long offset, RefPtr<ArrayBufferView>&& data, ExceptionCode&); -
trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.idl
r206723 r207632 485 485 void blendFunc(GLenum sfactor, GLenum dfactor); 486 486 void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); 487 [MayThrowLegacyException] void bufferData(GLenum target, ArrayBuffer data, GLenum usage);488 [MayThrowLegacyException] void bufferData(GLenum target, ArrayBufferView data, GLenum usage);487 [MayThrowLegacyException] void bufferData(GLenum target, ArrayBuffer? data, GLenum usage); 488 [MayThrowLegacyException] void bufferData(GLenum target, ArrayBufferView? data, GLenum usage); 489 489 [MayThrowLegacyException] void bufferData(GLenum target, GLsizeiptr size, GLenum usage); 490 490 [MayThrowLegacyException] void bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data);
Note: See TracChangeset
for help on using the changeset viewer.