2
* Copyright (C) 2009 Apple Inc. All rights reserved.
3
* Copyright (C) 2009 Google Inc. All rights reserved.
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
8
* 1. Redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer.
10
* 2. Redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution.
14
* THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
15
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
18
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
21
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
22
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
#include <wtf/IntegralTypedArrayBase.h>
36
class Uint32Array : public IntegralTypedArrayBase<unsigned int> {
38
static inline PassRefPtr<Uint32Array> create(unsigned length);
39
static inline PassRefPtr<Uint32Array> create(const unsigned int* array, unsigned length);
40
static inline PassRefPtr<Uint32Array> create(PassRefPtr<ArrayBuffer>, unsigned byteOffset, unsigned length);
42
// Should only be used when it is known the entire array will be filled. Do
43
// not return these results directly to JavaScript without filling first.
44
static inline PassRefPtr<Uint32Array> createUninitialized(unsigned length);
46
// Can’t use "using" here due to a bug in the RVCT compiler.
47
bool set(TypedArrayBase<unsigned int>* array, unsigned offset) { return TypedArrayBase<unsigned int>::set(array, offset); }
48
void set(unsigned index, double value) { IntegralTypedArrayBase<unsigned int>::set(index, value); }
50
inline PassRefPtr<Uint32Array> subarray(int start) const;
51
inline PassRefPtr<Uint32Array> subarray(int start, int end) const;
53
virtual ViewType getType() const
59
inline Uint32Array(PassRefPtr<ArrayBuffer>,
62
// Make constructor visible to superclass.
63
friend class TypedArrayBase<unsigned int>;
66
PassRefPtr<Uint32Array> Uint32Array::create(unsigned length)
68
return TypedArrayBase<unsigned int>::create<Uint32Array>(length);
71
PassRefPtr<Uint32Array> Uint32Array::create(const unsigned int* array, unsigned length)
73
return TypedArrayBase<unsigned int>::create<Uint32Array>(array, length);
76
PassRefPtr<Uint32Array> Uint32Array::create(PassRefPtr<ArrayBuffer> buffer, unsigned byteOffset, unsigned length)
78
return TypedArrayBase<unsigned int>::create<Uint32Array>(buffer, byteOffset, length);
81
PassRefPtr<Uint32Array> Uint32Array::createUninitialized(unsigned length)
83
return TypedArrayBase<unsigned int>::createUninitialized<Uint32Array>(length);
86
Uint32Array::Uint32Array(PassRefPtr<ArrayBuffer> buffer, unsigned byteOffset, unsigned length)
87
: IntegralTypedArrayBase<unsigned int>(buffer, byteOffset, length)
91
PassRefPtr<Uint32Array> Uint32Array::subarray(int start) const
93
return subarray(start, length());
96
PassRefPtr<Uint32Array> Uint32Array::subarray(int start, int end) const
98
return subarrayImpl<Uint32Array>(start, end);
103
using WTF::Uint32Array;
105
#endif // Uint32Array_h