WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-45419-20100908163733.patch (text/plain), 3.94 KB, created by
Chris Rogers
on 2010-09-08 16:37:34 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Chris Rogers
Created:
2010-09-08 16:37:34 PDT
Size:
3.94 KB
patch
obsolete
>Index: WebCore/ChangeLog >=================================================================== >--- WebCore/ChangeLog (revision 67035) >+++ WebCore/ChangeLog (working copy) >@@ -1,3 +1,20 @@ >+2010-09-08 Chris Rogers <crogers@google.com> >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Add setRange() and zeroRange() methods to TypedArrayBase >+ https://bugs.webkit.org/show_bug.cgi?id=45419 >+ >+ No new tests since adding new methods which are not yet called anywhere. >+ >+ * html/canvas/ArrayBufferView.cpp: >+ (WebCore::ArrayBufferView::setRangeImpl): >+ (WebCore::ArrayBufferView::zeroRangeImpl): >+ * html/canvas/ArrayBufferView.h: >+ * html/canvas/TypedArrayBase.h: >+ (WebCore::TypedArrayBase::setRange): >+ (WebCore::TypedArrayBase::zeroRange): >+ > 2010-09-08 Dean Jackson <dino@apple.com> > > Unreviewed attempt to fix QT build. >Index: WebCore/html/canvas/ArrayBufferView.cpp >=================================================================== >--- WebCore/html/canvas/ArrayBufferView.cpp (revision 66940) >+++ WebCore/html/canvas/ArrayBufferView.cpp (working copy) >@@ -59,6 +59,34 @@ void ArrayBufferView::setImpl(ArrayBuffe > memmove(base + byteOffset, array->baseAddress(), array->byteLength()); > } > >+void ArrayBufferView::setRangeImpl(const char* data, size_t dataByteLength, unsigned byteOffset, ExceptionCode& ec) >+{ >+ if (byteOffset > byteLength() >+ || byteOffset + dataByteLength > byteLength() >+ || byteOffset + dataByteLength < byteOffset) { >+ // Out of range offset or overflow >+ ec = INDEX_SIZE_ERR; >+ return; >+ } >+ >+ char* base = static_cast<char*>(baseAddress()); >+ memmove(base + byteOffset, data, dataByteLength); >+} >+ >+void ArrayBufferView::zeroRangeImpl(unsigned byteOffset, size_t rangeByteLength, ExceptionCode& ec) >+{ >+ if (byteOffset > byteLength() >+ || byteOffset + rangeByteLength > byteLength() >+ || byteOffset + rangeByteLength < byteOffset) { >+ // Out of range offset or overflow >+ ec = INDEX_SIZE_ERR; >+ return; >+ } >+ >+ char* base = static_cast<char*>(baseAddress()); >+ memset(base + byteOffset, 0, rangeByteLength); >+} >+ > void ArrayBufferView::calculateOffsetAndLength(int start, int end, unsigned arraySize, > unsigned* offset, unsigned* length) > { >Index: WebCore/html/canvas/ArrayBufferView.h >=================================================================== >--- WebCore/html/canvas/ArrayBufferView.h (revision 66940) >+++ WebCore/html/canvas/ArrayBufferView.h (working copy) >@@ -73,6 +73,10 @@ class ArrayBufferView : public RefCounte > > void setImpl(ArrayBufferView* array, unsigned byteOffset, ExceptionCode& ec); > >+ void setRangeImpl(const char* data, size_t dataByteLength, unsigned byteOffset, ExceptionCode& ec); >+ >+ void zeroRangeImpl(unsigned byteOffset, size_t rangeByteLength, ExceptionCode& ec); >+ > static void calculateOffsetAndLength(int start, int end, unsigned arraySize, > unsigned* offset, unsigned* length); > >Index: WebCore/html/canvas/TypedArrayBase.h >=================================================================== >--- WebCore/html/canvas/TypedArrayBase.h (revision 66940) >+++ WebCore/html/canvas/TypedArrayBase.h (working copy) >@@ -42,6 +42,16 @@ class TypedArrayBase : public ArrayBuffe > setImpl(array, offset * sizeof(T), ec); > } > >+ void setRange(const T* data, size_t dataLength, unsigned offset, ExceptionCode& ec) >+ { >+ setRangeImpl(reinterpret_cast<const char*>(data), dataLength * sizeof(T), offset * sizeof(T), ec); >+ } >+ >+ void zeroRange(unsigned offset, size_t length, ExceptionCode& ec) >+ { >+ zeroRangeImpl(offset * sizeof(T), length * sizeof(T), ec); >+ } >+ > // Overridden from ArrayBufferView. This must be public because of > // rules about inheritance of members in template classes, and > // because it is accessed via pointers to subclasses.
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 45419
: 66957