diff options
Diffstat (limited to 'webkit/port/bindings/v8')
-rw-r--r-- | webkit/port/bindings/v8/CanvasPixelArray.cpp | 82 | ||||
-rw-r--r-- | webkit/port/bindings/v8/CanvasPixelArray.h | 64 | ||||
-rw-r--r-- | webkit/port/bindings/v8/CanvasPixelArray.idl | 35 | ||||
-rw-r--r-- | webkit/port/bindings/v8/V8CanvasPixelArrayCustom.cpp | 8 |
4 files changed, 6 insertions, 183 deletions
diff --git a/webkit/port/bindings/v8/CanvasPixelArray.cpp b/webkit/port/bindings/v8/CanvasPixelArray.cpp deleted file mode 100644 index ef0f7fd..0000000 --- a/webkit/port/bindings/v8/CanvasPixelArray.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright (c) 2009, Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include <CanvasPixelArray.h> - -#include <v8_proxy.h> -#include <wtf/Assertions.h> - -namespace WebCore { - - CanvasPixelArray::CanvasPixelArray(size_t length) - { - ASSERT((length & 3) == 0); // Length must be a multiple of 4. - m_length = length; - m_data = static_cast<unsigned char*>(fastMalloc(m_length)); - } - - CanvasPixelArray::~CanvasPixelArray() - { - fastFree(m_data); - // Ensure that accesses after destruction will fail. In case there is a - // dangling reference. - m_length = 0; - m_data = reinterpret_cast<unsigned char*>(-1); - } - - size_t CanvasPixelArray::length() const - { - return m_length; - } - - unsigned char* CanvasPixelArray::data() - { - return m_data; - } - - unsigned char CanvasPixelArray::get(size_t index) - { - ASSERT(index < m_length); - return m_data[index]; - } - - void CanvasPixelArray::set(size_t index, double value) - { - ASSERT(index < m_length); - if (!(value > 0)) { // Test for NaN and less than zero in one go. - value = 0; - } else if (value > 255) { - value = 255; - } - m_data[index] = static_cast<unsigned char>(value + 0.5); - } - -} // namespace WebCore diff --git a/webkit/port/bindings/v8/CanvasPixelArray.h b/webkit/port/bindings/v8/CanvasPixelArray.h deleted file mode 100644 index 53e83bd..0000000 --- a/webkit/port/bindings/v8/CanvasPixelArray.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2009, Google Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are - * met: - * - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above - * copyright notice, this list of conditions and the following disclaimer - * in the documentation and/or other materials provided with the - * distribution. - * * Neither the name of Google Inc. nor the names of its - * contributors may be used to endorse or promote products derived from - * this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT - * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef CanvasPixelArray_h -#define CanvasPixelArray_h - -#include "v8.h" -#include <wtf/Forward.h> -#include <wtf/PassRefPtr.h> -#include <wtf/RefCounted.h> - -namespace WebCore { - -class CanvasPixelArray : public RefCounted<CanvasPixelArray> { -public: - static PassRefPtr<CanvasPixelArray> create(size_t length) - { - return adoptRef(new CanvasPixelArray(length)); - } - ~CanvasPixelArray(); - - size_t length() const; - unsigned char* data(); - - unsigned char get(size_t index); - void set(size_t index, double value); - -private: - size_t m_length; - unsigned char* m_data; - - CanvasPixelArray(size_t length); -}; - -} // namespace WebCore - -#endif // CanvasPixelArray_h diff --git a/webkit/port/bindings/v8/CanvasPixelArray.idl b/webkit/port/bindings/v8/CanvasPixelArray.idl deleted file mode 100644 index 68080dd..0000000 --- a/webkit/port/bindings/v8/CanvasPixelArray.idl +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (C) 2007 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -module html { - - interface [ - HasCustomIndexGetter, - HasCustomIndexSetter - ] CanvasPixelArray { - readonly attribute long length; - }; - -} diff --git a/webkit/port/bindings/v8/V8CanvasPixelArrayCustom.cpp b/webkit/port/bindings/v8/V8CanvasPixelArrayCustom.cpp index 5e6e185..f4421d5 100644 --- a/webkit/port/bindings/v8/V8CanvasPixelArrayCustom.cpp +++ b/webkit/port/bindings/v8/V8CanvasPixelArrayCustom.cpp @@ -47,11 +47,15 @@ INDEXED_PROPERTY_GETTER(CanvasPixelArray) { V8Proxy::ToNativeObject<CanvasPixelArray>( V8ClassIndex::CANVASPIXELARRAY, info.Holder()); - + if ((index < 0) || (index >= pixelBuffer->length())) { return v8::Undefined(); } - return v8::Number::New(pixelBuffer->get(index)); + unsigned char result; + if (!pixelBuffer->get(index, result)) { + return v8::Undefined(); + } + return v8::Number::New(result); } |