| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2009 Apple Inc. All rights reserved. | 2  * Copyright (C) 2009 Apple Inc. All rights reserved. | 
| 3  * Copyright (C) 2009 Google Inc. All rights reserved. | 3  * Copyright (C) 2009 Google Inc. All rights reserved. | 
| 4  * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). | 4  * Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). | 
| 5  * | 5  * | 
| 6  * Redistribution and use in source and binary forms, with or without | 6  * Redistribution and use in source and binary forms, with or without | 
| 7  * modification, are permitted provided that the following conditions | 7  * modification, are permitted provided that the following conditions | 
| 8  * are met: | 8  * are met: | 
| 9  * 1. Redistributions of source code must retain the above copyright | 9  * 1. Redistributions of source code must retain the above copyright | 
| 10  *    notice, this list of conditions and the following disclaimer. | 10  *    notice, this list of conditions and the following disclaimer. | 
| (...skipping 17 matching lines...) Expand all  Loading... | 
| 28 #ifndef Uint8ClampedArray_h | 28 #ifndef Uint8ClampedArray_h | 
| 29 #define Uint8ClampedArray_h | 29 #define Uint8ClampedArray_h | 
| 30 | 30 | 
| 31 #include "wtf/Uint8Array.h" | 31 #include "wtf/Uint8Array.h" | 
| 32 #include "wtf/MathExtras.h" | 32 #include "wtf/MathExtras.h" | 
| 33 | 33 | 
| 34 namespace WTF { | 34 namespace WTF { | 
| 35 | 35 | 
| 36 class Uint8ClampedArray final : public Uint8Array { | 36 class Uint8ClampedArray final : public Uint8Array { | 
| 37 public: | 37 public: | 
| 38     static inline PassRefPtr<Uint8ClampedArray> create(unsigned length); | 38     static inline PassRefPtr<Uint8ClampedArray> createOrNull(unsigned length); | 
| 39     static inline PassRefPtr<Uint8ClampedArray> create(const unsigned char* arra
    y, unsigned length); | 39     static inline PassRefPtr<Uint8ClampedArray> createOrNull(const unsigned char
    * array, unsigned length); | 
|  | 40     static inline PassRefPtr<Uint8ClampedArray> deprecatedCreateOrCrash(const un
    signed char* array, unsigned length); | 
| 40     static inline PassRefPtr<Uint8ClampedArray> create(PassRefPtr<ArrayBuffer>, 
    unsigned byteOffset, unsigned length); | 41     static inline PassRefPtr<Uint8ClampedArray> create(PassRefPtr<ArrayBuffer>, 
    unsigned byteOffset, unsigned length); | 
| 41 | 42 | 
| 42     using TypedArrayBase<unsigned char>::set; | 43     using TypedArrayBase<unsigned char>::set; | 
| 43     inline void set(unsigned index, double value); | 44     inline void set(unsigned index, double value); | 
| 44 | 45 | 
| 45     ViewType type() const override | 46     ViewType type() const override | 
| 46     { | 47     { | 
| 47         return TypeUint8Clamped; | 48         return TypeUint8Clamped; | 
| 48     } | 49     } | 
| 49 | 50 | 
| 50 private: | 51 private: | 
| 51     inline Uint8ClampedArray(PassRefPtr<ArrayBuffer>, unsigned byteOffset, unsig
    ned length); | 52     inline Uint8ClampedArray(PassRefPtr<ArrayBuffer>, unsigned byteOffset, unsig
    ned length); | 
| 52     // Make constructor visible to superclass. | 53     // Make constructor visible to superclass. | 
| 53     friend class TypedArrayBase<unsigned char>; | 54     friend class TypedArrayBase<unsigned char>; | 
| 54 }; | 55 }; | 
| 55 | 56 | 
| 56 PassRefPtr<Uint8ClampedArray> Uint8ClampedArray::create(unsigned length) | 57 PassRefPtr<Uint8ClampedArray> Uint8ClampedArray::createOrNull(unsigned length) | 
| 57 { | 58 { | 
| 58     return TypedArrayBase<unsigned char>::create<Uint8ClampedArray>(length); | 59     return TypedArrayBase<unsigned char>::createOrNull<Uint8ClampedArray>(length
    ); | 
| 59 } | 60 } | 
| 60 | 61 | 
| 61 PassRefPtr<Uint8ClampedArray> Uint8ClampedArray::create(const unsigned char* arr
    ay, unsigned length) | 62 PassRefPtr<Uint8ClampedArray> Uint8ClampedArray::createOrNull(const unsigned cha
    r* array, unsigned length) | 
| 62 { | 63 { | 
| 63     return TypedArrayBase<unsigned char>::create<Uint8ClampedArray>(array, lengt
    h); | 64     return TypedArrayBase<unsigned char>::createOrNull<Uint8ClampedArray>(array,
     length); | 
|  | 65 } | 
|  | 66 | 
|  | 67 PassRefPtr<Uint8ClampedArray> Uint8ClampedArray::deprecatedCreateOrCrash(const u
    nsigned char* array, unsigned length) | 
|  | 68 { | 
|  | 69     return TypedArrayBase<unsigned char>::deprecatedCreateOrCrash<Uint8ClampedAr
    ray>(array, length); | 
| 64 } | 70 } | 
| 65 | 71 | 
| 66 PassRefPtr<Uint8ClampedArray> Uint8ClampedArray::create(PassRefPtr<ArrayBuffer> 
    buffer, unsigned byteOffset, unsigned length) | 72 PassRefPtr<Uint8ClampedArray> Uint8ClampedArray::create(PassRefPtr<ArrayBuffer> 
    buffer, unsigned byteOffset, unsigned length) | 
| 67 { | 73 { | 
| 68     return TypedArrayBase<unsigned char>::create<Uint8ClampedArray>(buffer, byte
    Offset, length); | 74     return TypedArrayBase<unsigned char>::create<Uint8ClampedArray>(buffer, byte
    Offset, length); | 
| 69 } | 75 } | 
| 70 | 76 | 
| 71 void Uint8ClampedArray::set(unsigned index, double value) | 77 void Uint8ClampedArray::set(unsigned index, double value) | 
| 72 { | 78 { | 
| 73     if (index >= m_length) | 79     if (index >= m_length) | 
| 74         return; | 80         return; | 
| 75     if (std::isnan(value) || value < 0) | 81     if (std::isnan(value) || value < 0) | 
| 76         value = 0; | 82         value = 0; | 
| 77     else if (value > 255) | 83     else if (value > 255) | 
| 78         value = 255; | 84         value = 255; | 
| 79     data()[index] = static_cast<unsigned char>(lrint(value)); | 85     data()[index] = static_cast<unsigned char>(lrint(value)); | 
| 80 } | 86 } | 
| 81 | 87 | 
| 82 Uint8ClampedArray::Uint8ClampedArray(PassRefPtr<ArrayBuffer> buffer, unsigned by
    teOffset, unsigned length) | 88 Uint8ClampedArray::Uint8ClampedArray(PassRefPtr<ArrayBuffer> buffer, unsigned by
    teOffset, unsigned length) | 
| 83 : Uint8Array(buffer, byteOffset, length) | 89 : Uint8Array(buffer, byteOffset, length) | 
| 84 { | 90 { | 
| 85 } | 91 } | 
| 86 | 92 | 
| 87 } // namespace WTF | 93 } // namespace WTF | 
| 88 | 94 | 
| 89 using WTF::Uint8ClampedArray; | 95 using WTF::Uint8ClampedArray; | 
| 90 | 96 | 
| 91 #endif // Uint8ClampedArray_h | 97 #endif // Uint8ClampedArray_h | 
| OLD | NEW | 
|---|