Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(668)

Unified Diff: sky/engine/core/html/canvas/DataView.cpp

Issue 1001913003: Remove <canvas> (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/engine/core/html/canvas/DataView.h ('k') | sky/engine/core/html/canvas/DataView.idl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/engine/core/html/canvas/DataView.cpp
diff --git a/sky/engine/core/html/canvas/DataView.cpp b/sky/engine/core/html/canvas/DataView.cpp
deleted file mode 100644
index 94d993918e473ee6472498bd40a9b89c8e98b4a6..0000000000000000000000000000000000000000
--- a/sky/engine/core/html/canvas/DataView.cpp
+++ /dev/null
@@ -1,247 +0,0 @@
-/*
- * Copyright (C) 2010 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:
- *
- * 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 AND ITS 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 APPLE OR ITS 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 "sky/engine/config.h"
-#include "sky/engine/core/html/canvas/DataView.h"
-
-#include "sky/engine/bindings/exception_state.h"
-#include "sky/engine/core/dom/ExceptionCode.h"
-#include "sky/engine/platform/CheckedInt.h"
-#include "sky/engine/wtf/CPU.h"
-
-namespace {
-
-template<typename T>
-union Value {
- T data;
- char bytes[sizeof(T)];
-};
-
-}
-
-namespace blink {
-
-PassRefPtr<DataView> DataView::create(unsigned length)
-{
- RefPtr<ArrayBuffer> buffer = ArrayBuffer::create(length, sizeof(uint8_t));
- if (!buffer.get())
- return nullptr;
- return create(buffer, 0, length);
-}
-
-PassRefPtr<DataView> DataView::create(PassRefPtr<ArrayBuffer> buffer, unsigned byteOffset, unsigned byteLength)
-{
- if (byteOffset > buffer->byteLength())
- return nullptr;
- CheckedInt<uint32_t> checkedOffset(byteOffset);
- CheckedInt<uint32_t> checkedLength(byteLength);
- CheckedInt<uint32_t> checkedMax = checkedOffset + checkedLength;
- if (!checkedMax.isValid() || checkedMax.value() > buffer->byteLength())
- return nullptr;
- return adoptRef(new DataView(buffer, byteOffset, byteLength));
-}
-
-DataView::DataView(PassRefPtr<ArrayBuffer> buffer, unsigned byteOffset, unsigned byteLength)
- : ArrayBufferView(buffer, byteOffset)
- , m_byteLength(byteLength)
-{
-}
-
-static bool needToFlipBytes(bool littleEndian)
-{
-#if CPU(BIG_ENDIAN)
- return littleEndian;
-#else
- return !littleEndian;
-#endif
-}
-
-inline void swapBytes(char* p, char* q)
-{
- char temp = *p;
- *p = *q;
- *q = temp;
-}
-
-static void flipBytesFor16Bits(char* p)
-{
- swapBytes(p, p + 1);
-}
-
-static void flipBytesFor32Bits(char* p)
-{
- swapBytes(p, p + 3);
- swapBytes(p + 1, p + 2);
-}
-
-static void flipBytesFor64Bits(char* p)
-{
- swapBytes(p, p + 7);
- swapBytes(p + 1, p + 6);
- swapBytes(p + 2, p + 5);
- swapBytes(p + 3, p + 4);
-}
-
-static void flipBytesIfNeeded(char* value, size_t size, bool littleEndian)
-{
- if (!needToFlipBytes(littleEndian))
- return;
-
- switch (size) {
- case 1:
- // Nothing to do.
- break;
- case 2:
- flipBytesFor16Bits(value);
- break;
- case 4:
- flipBytesFor32Bits(value);
- break;
- case 8:
- flipBytesFor64Bits(value);
- break;
- default:
- ASSERT_NOT_REACHED();
- break;
- }
-}
-
-template<typename T>
-T DataView::getData(unsigned byteOffset, bool littleEndian, ExceptionState& exceptionState) const
-{
- if (beyondRange<T>(byteOffset)) {
- exceptionState.ThrowDOMException(IndexSizeError, "The provided offset (" + String::number(byteOffset) + ") is outside the allowed range.");
- return 0;
- }
-
- // We do not want to load the data directly since it would cause a bus error on architectures that don't support unaligned loads.
- Value<T> value;
- memcpy(value.bytes, static_cast<const char*>(m_baseAddress) + byteOffset, sizeof(T));
- flipBytesIfNeeded(value.bytes, sizeof(T), littleEndian);
- return value.data;
-}
-
-template<typename T>
-void DataView::setData(unsigned byteOffset, T value, bool littleEndian, ExceptionState& exceptionState)
-{
- if (beyondRange<T>(byteOffset)) {
- exceptionState.ThrowDOMException(IndexSizeError, "The provided offset (" + String::number(byteOffset) + ") is outside the allowed range.");
- return;
- }
-
- // We do not want to store the data directly since it would cause a bus error on architectures that don't support unaligned stores.
- Value<T> tempValue;
- tempValue.data = value;
- flipBytesIfNeeded(tempValue.bytes, sizeof(T), littleEndian);
- memcpy(static_cast<char*>(m_baseAddress) + byteOffset, tempValue.bytes, sizeof(T));
-}
-
-int8_t DataView::getInt8(unsigned byteOffset, ExceptionState& exceptionState)
-{
- return getData<int8_t>(byteOffset, false, exceptionState);
-}
-
-uint8_t DataView::getUint8(unsigned byteOffset, ExceptionState& exceptionState)
-{
- return getData<uint8_t>(byteOffset, false, exceptionState);
-}
-
-int16_t DataView::getInt16(unsigned byteOffset, bool littleEndian, ExceptionState& exceptionState)
-{
- return getData<int16_t>(byteOffset, littleEndian, exceptionState);
-}
-
-uint16_t DataView::getUint16(unsigned byteOffset, bool littleEndian, ExceptionState& exceptionState)
-{
- return getData<uint16_t>(byteOffset, littleEndian, exceptionState);
-}
-
-int32_t DataView::getInt32(unsigned byteOffset, bool littleEndian, ExceptionState& exceptionState)
-{
- return getData<int32_t>(byteOffset, littleEndian, exceptionState);
-}
-
-uint32_t DataView::getUint32(unsigned byteOffset, bool littleEndian, ExceptionState& exceptionState)
-{
- return getData<uint32_t>(byteOffset, littleEndian, exceptionState);
-}
-
-float DataView::getFloat32(unsigned byteOffset, bool littleEndian, ExceptionState& exceptionState)
-{
- return getData<float>(byteOffset, littleEndian, exceptionState);
-}
-
-double DataView::getFloat64(unsigned byteOffset, bool littleEndian, ExceptionState& exceptionState)
-{
- return getData<double>(byteOffset, littleEndian, exceptionState);
-}
-
-void DataView::setInt8(unsigned byteOffset, int8_t value, ExceptionState& exceptionState)
-{
- setData<int8_t>(byteOffset, value, false, exceptionState);
-}
-
-void DataView::setUint8(unsigned byteOffset, uint8_t value, ExceptionState& exceptionState)
-{
- setData<uint8_t>(byteOffset, value, false, exceptionState);
-}
-
-void DataView::setInt16(unsigned byteOffset, short value, bool littleEndian, ExceptionState& exceptionState)
-{
- setData<int16_t>(byteOffset, value, littleEndian, exceptionState);
-}
-
-void DataView::setUint16(unsigned byteOffset, uint16_t value, bool littleEndian, ExceptionState& exceptionState)
-{
- setData<uint16_t>(byteOffset, value, littleEndian, exceptionState);
-}
-
-void DataView::setInt32(unsigned byteOffset, int32_t value, bool littleEndian, ExceptionState& exceptionState)
-{
- setData<int32_t>(byteOffset, value, littleEndian, exceptionState);
-}
-
-void DataView::setUint32(unsigned byteOffset, uint32_t value, bool littleEndian, ExceptionState& exceptionState)
-{
- setData<uint32_t>(byteOffset, value, littleEndian, exceptionState);
-}
-
-void DataView::setFloat32(unsigned byteOffset, float value, bool littleEndian, ExceptionState& exceptionState)
-{
- setData<float>(byteOffset, value, littleEndian, exceptionState);
-}
-
-void DataView::setFloat64(unsigned byteOffset, double value, bool littleEndian, ExceptionState& exceptionState)
-{
- setData<double>(byteOffset, value, littleEndian, exceptionState);
-}
-
-void DataView::neuter()
-{
- ArrayBufferView::neuter();
- m_byteLength = 0;
-}
-
-} // namespace blink
« no previous file with comments | « sky/engine/core/html/canvas/DataView.h ('k') | sky/engine/core/html/canvas/DataView.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698