| Index: skia/animator/SkTypedArray.cpp
|
| ===================================================================
|
| --- skia/animator/SkTypedArray.cpp (revision 16859)
|
| +++ skia/animator/SkTypedArray.cpp (working copy)
|
| @@ -1,187 +0,0 @@
|
| -/* libs/graphics/animator/SkTypedArray.cpp
|
| -**
|
| -** Copyright 2006, The Android Open Source Project
|
| -**
|
| -** Licensed under the Apache License, Version 2.0 (the "License");
|
| -** you may not use this file except in compliance with the License.
|
| -** You may obtain a copy of the License at
|
| -**
|
| -** http://www.apache.org/licenses/LICENSE-2.0
|
| -**
|
| -** Unless required by applicable law or agreed to in writing, software
|
| -** distributed under the License is distributed on an "AS IS" BASIS,
|
| -** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| -** See the License for the specific language governing permissions and
|
| -** limitations under the License.
|
| -*/
|
| -
|
| -#include "SkTypedArray.h"
|
| -
|
| -SkTypedArray::SkTypedArray() : fType(SkType_Unknown) {
|
| -}
|
| -
|
| -SkTypedArray::SkTypedArray(SkDisplayTypes type) : fType(type) {
|
| -}
|
| -
|
| -bool SkTypedArray::getIndex(int index, SkOperand* operand) {
|
| - if (index >= count()) {
|
| - SkASSERT(0);
|
| - return false;
|
| - }
|
| - *operand = begin()[index];
|
| - return true;
|
| -}
|
| -
|
| -
|
| -#if SK_SMALLER_ARRAY_TEMPLATE_EXPERIMENT == 1
|
| -SkDS32Array::SkDS32Array()
|
| -{
|
| - fReserve = fCount = 0;
|
| - fArray = NULL;
|
| -#ifdef SK_DEBUG
|
| - fData = NULL;
|
| -#endif
|
| -}
|
| -
|
| -SkDS32Array::SkDS32Array(const SkDS32Array& src)
|
| -{
|
| - fReserve = fCount = 0;
|
| - fArray = NULL;
|
| -#ifdef SK_DEBUG
|
| - fData = NULL;
|
| -#endif
|
| - SkDS32Array tmp(src.fArray, src.fCount);
|
| - this->swap(tmp);
|
| -}
|
| -
|
| -SkDS32Array::SkDS32Array(const int32_t src[], U16CPU count)
|
| -{
|
| - SkASSERT(src || count == 0);
|
| -
|
| - fReserve = fCount = 0;
|
| - fArray = NULL;
|
| -#ifdef SK_DEBUG
|
| - fData = NULL;
|
| -#endif
|
| - if (count)
|
| - {
|
| - fArray = (int32_t*)sk_malloc_throw(count * sizeof(int32_t));
|
| -#ifdef SK_DEBUG
|
| - fData = (int32_t (*)[kDebugArraySize]) fArray;
|
| -#endif
|
| - memcpy(fArray, src, sizeof(int32_t) * count);
|
| - fReserve = fCount = SkToU16(count);
|
| - }
|
| -}
|
| -
|
| -SkDS32Array& SkDS32Array::operator=(const SkDS32Array& src)
|
| -{
|
| - if (this != &src)
|
| - {
|
| - if (src.fCount > fReserve)
|
| - {
|
| - SkDS32Array tmp(src.fArray, src.fCount);
|
| - this->swap(tmp);
|
| - }
|
| - else
|
| - {
|
| - memcpy(fArray, src.fArray, sizeof(int32_t) * src.fCount);
|
| - fCount = src.fCount;
|
| - }
|
| - }
|
| - return *this;
|
| -}
|
| -
|
| -int operator==(const SkDS32Array& a, const SkDS32Array& b)
|
| -{
|
| - return a.fCount == b.fCount &&
|
| - (a.fCount == 0 || !memcmp(a.fArray, b.fArray, a.fCount * sizeof(int32_t)));
|
| -}
|
| -
|
| -void SkDS32Array::swap(SkDS32Array& other)
|
| -{
|
| - SkTSwap(fArray, other.fArray);
|
| -#ifdef SK_DEBUG
|
| - SkTSwap(fData, other.fData);
|
| -#endif
|
| - SkTSwap(fReserve, other.fReserve);
|
| - SkTSwap(fCount, other.fCount);
|
| -}
|
| -
|
| -int32_t* SkDS32Array::append(U16CPU count, const int32_t* src)
|
| -{
|
| - unsigned oldCount = fCount;
|
| - if (count)
|
| - {
|
| - SkASSERT(src == NULL || fArray == NULL ||
|
| - src + count <= fArray || fArray + count <= src);
|
| -
|
| - this->growBy(count);
|
| - if (src)
|
| - memcpy(fArray + oldCount, src, sizeof(int32_t) * count);
|
| - }
|
| - return fArray + oldCount;
|
| -}
|
| -
|
| -int SkDS32Array::find(const int32_t& elem) const
|
| -{
|
| - const int32_t* iter = fArray;
|
| - const int32_t* stop = fArray + fCount;
|
| -
|
| - for (; iter < stop; iter++)
|
| - {
|
| - if (*iter == elem)
|
| - return (int) (iter - fArray);
|
| - }
|
| - return -1;
|
| -}
|
| -
|
| -void SkDS32Array::growBy(U16CPU extra)
|
| -{
|
| - SkASSERT(extra);
|
| - SkASSERT(fCount + extra <= 0xFFFF);
|
| -
|
| - if (fCount + extra > fReserve)
|
| - {
|
| - size_t size = fCount + extra + 4;
|
| - size += size >> 2;
|
| - int32_t* array = (int32_t*)sk_malloc_throw(size * sizeof(int32_t));
|
| - memcpy(array, fArray, fCount * sizeof(int32_t));
|
| -
|
| - sk_free(fArray);
|
| - fArray = array;
|
| -#ifdef SK_DEBUG
|
| - fData = (int32_t (*)[kDebugArraySize]) fArray;
|
| -#endif
|
| - fReserve = SkToU16((U16CPU)size);
|
| - }
|
| - fCount = SkToU16(fCount + extra);
|
| -}
|
| -
|
| -int32_t* SkDS32Array::insert(U16CPU index, U16CPU count, const int32_t* src)
|
| -{
|
| - SkASSERT(count);
|
| - int oldCount = fCount;
|
| - this->growBy(count);
|
| - int32_t* dst = fArray + index;
|
| - memmove(dst + count, dst, sizeof(int32_t) * (oldCount - index));
|
| - if (src)
|
| - memcpy(dst, src, sizeof(int32_t) * count);
|
| - return dst;
|
| -}
|
| -
|
| -
|
| - int SkDS32Array::rfind(const int32_t& elem) const
|
| - {
|
| - const int32_t* iter = fArray + fCount;
|
| - const int32_t* stop = fArray;
|
| -
|
| - while (iter > stop)
|
| - {
|
| - if (*--iter == elem)
|
| - return (int) (iter - stop);
|
| - }
|
| - return -1;
|
| - }
|
| -
|
| -#endif
|
|
|