Changeset 74994 in webkit


Ignore:
Timestamp:
Jan 4, 2011 12:43:52 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-01-04 Xianzhu Wang <wangxianzhu@google.com>

Reviewed by Darin Adler.

Let DataView.getInt8() and DataView.setInt8() use int8_t instead of
ambiguous 'char' to fix fast/canvas/webgl/data-view-test.html failure
on ARM.
https://bugs.webkit.org/show_bug.cgi?id=51861

By the way, changed other getIntXX() and setIntXX() methods to use
more precise integer types.

  • bindings/js/JSDataViewCustom.cpp: (WebCore::setDataViewMember):
  • bindings/v8/custom/V8DataViewCustom.cpp: (WebCore::V8DataView::getInt8Callback): (WebCore::V8DataView::setInt8Callback):
  • html/canvas/DataView.cpp: (WebCore::DataView::getInt8): (WebCore::DataView::setInt8):
  • html/canvas/DataView.h:
  • html/canvas/DataView.idl:
Location:
trunk/WebCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r74992 r74994  
     12011-01-04  Xianzhu Wang  <wangxianzhu@google.com>
     2
     3        Reviewed by Darin Adler.
     4
     5        Let DataView.getInt8() and DataView.setInt8() use int8_t instead of
     6        ambiguous 'char' to fix fast/canvas/webgl/data-view-test.html failure
     7        on ARM.
     8        https://bugs.webkit.org/show_bug.cgi?id=51861
     9
     10        By the way, changed other getIntXX() and setIntXX() methods to use
     11        more precise integer types.
     12
     13        * bindings/js/JSDataViewCustom.cpp:
     14        (WebCore::setDataViewMember):
     15        * bindings/v8/custom/V8DataViewCustom.cpp:
     16        (WebCore::V8DataView::getInt8Callback):
     17        (WebCore::V8DataView::setInt8Callback):
     18        * html/canvas/DataView.cpp:
     19        (WebCore::DataView::getInt8):
     20        (WebCore::DataView::setInt8):
     21        * html/canvas/DataView.h:
     22        * html/canvas/DataView.idl:
     23
    1242011-01-04  Yong Li  <yoli@rim.com>
    225
  • trunk/WebCore/bindings/js/JSDataViewCustom.cpp

    r74760 r74994  
    137137    switch (type) {
    138138    case AccessDataViewMemberAsInt8:
    139         imp->setInt8(byteOffset, static_cast<char>(value), ec);
     139        imp->setInt8(byteOffset, static_cast<int8_t>(value), ec);
    140140        break;
    141141    case AccessDataViewMemberAsUint8:
    142         imp->setUint8(byteOffset, static_cast<unsigned char>(value), ec);
     142        imp->setUint8(byteOffset, static_cast<uint8_t>(value), ec);
    143143        break;
    144144    default:
  • trunk/WebCore/bindings/v8/custom/V8DataViewCustom.cpp

    r72718 r74994  
    6363    ExceptionCode ec = 0;
    6464    EXCEPTION_BLOCK(unsigned, byteOffset, toUInt32(args[0]));
    65     char result = imp->getInt8(byteOffset, ec);
     65    int8_t result = imp->getInt8(byteOffset, ec);
    6666    if (UNLIKELY(ec)) {
    6767        V8Proxy::setDOMException(ec);
     
    8080    ExceptionCode ec = 0;
    8181    EXCEPTION_BLOCK(unsigned, byteOffset, toUInt32(args[0]));
    82     unsigned char result = imp->getUint8(byteOffset, ec);
     82    uint8_t result = imp->getUint8(byteOffset, ec);
    8383    if (UNLIKELY(ec)) {
    8484        V8Proxy::setDOMException(ec);
     
    9898    EXCEPTION_BLOCK(unsigned, byteOffset, toUInt32(args[0]));
    9999    EXCEPTION_BLOCK(int, value, toInt32(args[1]));
    100     imp->setInt8(byteOffset, static_cast<char>(value), ec);
     100    imp->setInt8(byteOffset, static_cast<int8_t>(value), ec);
    101101    if (UNLIKELY(ec))
    102102        V8Proxy::setDOMException(ec);
     
    114114    EXCEPTION_BLOCK(unsigned, byteOffset, toUInt32(args[0]));
    115115    EXCEPTION_BLOCK(int, value, toInt32(args[1]));
    116     imp->setUint8(byteOffset, static_cast<unsigned char>(value), ec);
     116    imp->setUint8(byteOffset, static_cast<uint8_t>(value), ec);
    117117    if (UNLIKELY(ec))
    118118        V8Proxy::setDOMException(ec);
  • trunk/WebCore/html/canvas/DataView.cpp

    r73208 r74994  
    151151}
    152152
    153 char DataView::getInt8(unsigned byteOffset, ExceptionCode& ec)
    154 {
    155     return getData<char>(byteOffset, false, ec);
    156 }
    157 
    158 unsigned char DataView::getUint8(unsigned byteOffset, ExceptionCode& ec)
    159 {
    160     return getData<unsigned char>(byteOffset, false, ec);
    161 }
    162 
    163 short DataView::getInt16(unsigned byteOffset, bool littleEndian, ExceptionCode& ec)
    164 {
    165     return getData<short>(byteOffset, littleEndian, ec);
    166 }
    167 
    168 unsigned short DataView::getUint16(unsigned byteOffset, bool littleEndian, ExceptionCode& ec)
    169 {
    170     return getData<unsigned short>(byteOffset, littleEndian, ec);
    171 }
    172 
    173 int DataView::getInt32(unsigned byteOffset, bool littleEndian, ExceptionCode& ec)
    174 {
    175     return getData<int>(byteOffset, littleEndian, ec);
    176 }
    177 
    178 unsigned DataView::getUint32(unsigned byteOffset, bool littleEndian, ExceptionCode& ec)
    179 {
    180     return getData<unsigned>(byteOffset, littleEndian, ec);
     153int8_t DataView::getInt8(unsigned byteOffset, ExceptionCode& ec)
     154{
     155    return getData<int8_t>(byteOffset, false, ec);
     156}
     157
     158uint8_t DataView::getUint8(unsigned byteOffset, ExceptionCode& ec)
     159{
     160    return getData<uint8_t>(byteOffset, false, ec);
     161}
     162
     163int16_t DataView::getInt16(unsigned byteOffset, bool littleEndian, ExceptionCode& ec)
     164{
     165    return getData<int16_t>(byteOffset, littleEndian, ec);
     166}
     167
     168uint16_t DataView::getUint16(unsigned byteOffset, bool littleEndian, ExceptionCode& ec)
     169{
     170    return getData<uint16_t>(byteOffset, littleEndian, ec);
     171}
     172
     173int32_t DataView::getInt32(unsigned byteOffset, bool littleEndian, ExceptionCode& ec)
     174{
     175    return getData<int32_t>(byteOffset, littleEndian, ec);
     176}
     177
     178uint32_t DataView::getUint32(unsigned byteOffset, bool littleEndian, ExceptionCode& ec)
     179{
     180    return getData<uint32_t>(byteOffset, littleEndian, ec);
    181181}
    182182
     
    191191}
    192192
    193 void DataView::setInt8(unsigned byteOffset, char value, ExceptionCode& ec)
    194 {
    195     setData<char>(byteOffset, value, false, ec);
    196 }
    197 
    198 void DataView::setUint8(unsigned byteOffset, unsigned char value, ExceptionCode& ec)
    199 {
    200     setData<unsigned char>(byteOffset, value, false, ec);
     193void DataView::setInt8(unsigned byteOffset, int8_t value, ExceptionCode& ec)
     194{
     195    setData<int8_t>(byteOffset, value, false, ec);
     196}
     197
     198void DataView::setUint8(unsigned byteOffset, uint8_t value, ExceptionCode& ec)
     199{
     200    setData<uint8_t>(byteOffset, value, false, ec);
    201201}
    202202
    203203void DataView::setInt16(unsigned byteOffset, short value, bool littleEndian, ExceptionCode& ec)
    204204{
    205     setData<short>(byteOffset, value, littleEndian, ec);
    206 }
    207 
    208 void DataView::setUint16(unsigned byteOffset, unsigned short value, bool littleEndian, ExceptionCode& ec)
    209 {
    210     setData<unsigned short>(byteOffset, value, littleEndian, ec);
    211 }
    212 
    213 void DataView::setInt32(unsigned byteOffset, int value, bool littleEndian, ExceptionCode& ec)
    214 {
    215     setData<int>(byteOffset, value, littleEndian, ec);
    216 }
    217 
    218 void DataView::setUint32(unsigned byteOffset, unsigned value, bool littleEndian, ExceptionCode& ec)
    219 {
    220     setData<unsigned>(byteOffset, value, littleEndian, ec);
     205    setData<int16_t>(byteOffset, value, littleEndian, ec);
     206}
     207
     208void DataView::setUint16(unsigned byteOffset, uint16_t value, bool littleEndian, ExceptionCode& ec)
     209{
     210    setData<uint16_t>(byteOffset, value, littleEndian, ec);
     211}
     212
     213void DataView::setInt32(unsigned byteOffset, int32_t value, bool littleEndian, ExceptionCode& ec)
     214{
     215    setData<int32_t>(byteOffset, value, littleEndian, ec);
     216}
     217
     218void DataView::setUint32(unsigned byteOffset, uint32_t value, bool littleEndian, ExceptionCode& ec)
     219{
     220    setData<uint32_t>(byteOffset, value, littleEndian, ec);
    221221}
    222222
  • trunk/WebCore/html/canvas/DataView.h

    r72718 r74994  
    4242    virtual PassRefPtr<ArrayBufferView> slice(int, int) const { return 0; }
    4343
    44     char getInt8(unsigned byteOffset, ExceptionCode&);
    45     unsigned char getUint8(unsigned byteOffset, ExceptionCode&);
    46     short getInt16(unsigned byteOffset, ExceptionCode& ec) { return getInt16(byteOffset, false, ec); }
    47     short getInt16(unsigned byteOffset, bool littleEndian, ExceptionCode&);
    48     unsigned short getUint16(unsigned byteOffset, ExceptionCode& ec) { return getUint16(byteOffset, false, ec); }
    49     unsigned short getUint16(unsigned byteOffset, bool littleEndian, ExceptionCode&);
    50     int getInt32(unsigned byteOffset, ExceptionCode& ec) { return getInt32(byteOffset, false, ec); }
    51     int getInt32(unsigned byteOffset, bool littleEndian, ExceptionCode&);
    52     unsigned getUint32(unsigned byteOffset, ExceptionCode& ec) { return getUint32(byteOffset, false, ec); }
    53     unsigned getUint32(unsigned byteOffset, bool littleEndian, ExceptionCode&);
     44    int8_t getInt8(unsigned byteOffset, ExceptionCode&);
     45    uint8_t getUint8(unsigned byteOffset, ExceptionCode&);
     46    int16_t getInt16(unsigned byteOffset, ExceptionCode& ec) { return getInt16(byteOffset, false, ec); }
     47    int16_t getInt16(unsigned byteOffset, bool littleEndian, ExceptionCode&);
     48    uint16_t getUint16(unsigned byteOffset, ExceptionCode& ec) { return getUint16(byteOffset, false, ec); }
     49    uint16_t getUint16(unsigned byteOffset, bool littleEndian, ExceptionCode&);
     50    int32_t getInt32(unsigned byteOffset, ExceptionCode& ec) { return getInt32(byteOffset, false, ec); }
     51    int32_t getInt32(unsigned byteOffset, bool littleEndian, ExceptionCode&);
     52    uint32_t getUint32(unsigned byteOffset, ExceptionCode& ec) { return getUint32(byteOffset, false, ec); }
     53    uint32_t getUint32(unsigned byteOffset, bool littleEndian, ExceptionCode&);
    5454    float getFloat32(unsigned byteOffset, ExceptionCode& ec) { return getFloat32(byteOffset, false, ec); }
    5555    float getFloat32(unsigned byteOffset, bool littleEndian, ExceptionCode&);
     
    5757    double getFloat64(unsigned byteOffset, bool littleEndian, ExceptionCode&);
    5858
    59     void setInt8(unsigned byteOffset, char value, ExceptionCode&);
    60     void setUint8(unsigned byteOffset, unsigned char value, ExceptionCode&);
    61     void setInt16(unsigned byteOffset, short value, ExceptionCode& ec) { setInt16(byteOffset, value, false, ec); }
    62     void setInt16(unsigned byteOffset, short value, bool littleEndian, ExceptionCode&);
    63     void setUint16(unsigned byteOffset, unsigned short value, ExceptionCode& ec) { setUint16(byteOffset, value, false, ec); }
    64     void setUint16(unsigned byteOffset, unsigned short value, bool littleEndian, ExceptionCode&);
    65     void setInt32(unsigned byteOffset, int value, ExceptionCode& ec) { setInt32(byteOffset, value, false, ec); }
    66     void setInt32(unsigned byteOffset, int value, bool littleEndian, ExceptionCode&);
    67     void setUint32(unsigned byteOffset, unsigned value, ExceptionCode& ec) { setUint32(byteOffset, value, false, ec); }
    68     void setUint32(unsigned byteOffset, unsigned value, bool littleEndian, ExceptionCode&);
     59    void setInt8(unsigned byteOffset, int8_t value, ExceptionCode&);
     60    void setUint8(unsigned byteOffset, uint8_t value, ExceptionCode&);
     61    void setInt16(unsigned byteOffset, int16_t value, ExceptionCode& ec) { setInt16(byteOffset, value, false, ec); }
     62    void setInt16(unsigned byteOffset, int16_t value, bool littleEndian, ExceptionCode&);
     63    void setUint16(unsigned byteOffset, uint16_t value, ExceptionCode& ec) { setUint16(byteOffset, value, false, ec); }
     64    void setUint16(unsigned byteOffset, uint16_t value, bool littleEndian, ExceptionCode&);
     65    void setInt32(unsigned byteOffset, int32_t value, ExceptionCode& ec) { setInt32(byteOffset, value, false, ec); }
     66    void setInt32(unsigned byteOffset, int32_t value, bool littleEndian, ExceptionCode&);
     67    void setUint32(unsigned byteOffset, uint32_t value, ExceptionCode& ec) { setUint32(byteOffset, value, false, ec); }
     68    void setUint32(unsigned byteOffset, uint32_t value, bool littleEndian, ExceptionCode&);
    6969    void setFloat32(unsigned byteOffset, float value, ExceptionCode& ec) { setFloat32(byteOffset, value, false, ec); }
    7070    void setFloat32(unsigned byteOffset, float value, bool littleEndian, ExceptionCode&);
  • trunk/WebCore/html/canvas/DataView.idl

    r72718 r74994  
    3636        // All these methods raise an exception if they would read or write beyond the end of the view.
    3737
    38         // We have to use custom code because our code generator does not support char type.
    39         // char getInt8(in unsigned long byteOffset);
    40         // unsigned char getUint8(in unsigned long byteOffset);
     38        // We have to use custom code because our code generator does not support int8_t type.
     39        // int8_t getInt8(in unsigned long byteOffset);
     40        // uint8_t getUint8(in unsigned long byteOffset);
    4141        [Custom] DOMObject getInt8()
    4242            raises (DOMException);
     
    5959            raises (DOMException);
    6060
    61         // We have to use custom code because our code generator does not support char type.
    62         // void setInt8(in unsigned long byteOffset, in byte value);
    63         // void setUint8(in unsigned long byteOffset, in unsigned byte value);
     61        // We have to use custom code because our code generator does not support uint8_t type.
     62        // void setInt8(in unsigned long byteOffset, in int8_t value);
     63        // void setUint8(in unsigned long byteOffset, in uint8_t value);
    6464        [Custom] void setInt8()
    6565            raises (DOMException);
Note: See TracChangeset for help on using the changeset viewer.