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

Unified Diff: src/core/SkTRefArray.h

Issue 719113004: Followup: remove unnecessary SkTRefArray (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: count Created 6 years, 1 month 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 | « src/core/SkPictureFlat.h ('k') | tests/RefCntTest.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/core/SkTRefArray.h
diff --git a/src/core/SkTRefArray.h b/src/core/SkTRefArray.h
deleted file mode 100644
index c4bca241d77fbc49b8a54d2dc373cfd74f3a6935..0000000000000000000000000000000000000000
--- a/src/core/SkTRefArray.h
+++ /dev/null
@@ -1,112 +0,0 @@
-//
-// SkTRefArray.h
-// core
-//
-// Created by Mike Reed on 7/17/12.
-// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
-//
-
-#ifndef SkTRefArray_DEFINED
-#define SkTRefArray_DEFINED
-
-#include "SkRefCnt.h"
-#include <new>
-
-/**
- * Wrapper to manage thread-safe sharing of an array of T objects. The array
- * cannot be grown or shrunk.
- */
-template <typename T> class SkTRefArray : public SkRefCnt {
- /*
- * Shared factory to allocate the space needed for our instance plus N
- * T entries at the end. We call our constructor, but not the constructors
- * for the elements. Those are called by the proper Create method.
- */
- static SkTRefArray<T>* Alloc(int count) {
- // space for us, and our [count] elements
- size_t size = sizeof(SkTRefArray<T>) + count * sizeof(T);
- SkTRefArray<T>* obj = (SkTRefArray<T>*)sk_malloc_throw(size);
-
- SkNEW_PLACEMENT(obj, SkTRefArray<T>);
- obj->fCount = count;
- return obj;
- }
-
-public:
- /**
- * Return a new array with 'count' elements, initialized to their default
- * value. To change them to some other value, use writableBegin/End or
- * writableAt(), but do that before this array is given to another thread.
- */
- static SkTRefArray<T>* Create(int count) {
- SkTRefArray<T>* obj = Alloc(count);
- T* array = const_cast<T*>(obj->begin());
- for (int i = 0; i < count; ++i) {
- SkNEW_PLACEMENT(&array[i], T);
- }
- return obj;
- }
-
- /**
- * Return a new array with 'count' elements, initialized from the provided
- * src array. To change them to some other value, use writableBegin/End or
- * writableAt(), but do that before this array is given to another thread.
- */
- static SkTRefArray<T>* Create(const T src[], int count) {
- SkTRefArray<T>* obj = Alloc(count);
- T* array = const_cast<T*>(obj->begin());
- for (int i = 0; i < count; ++i) {
- SkNEW_PLACEMENT_ARGS(&array[i], T, (src[i]));
- }
- return obj;
- }
-
- int count() const { return fCount; }
- const T* begin() const { return (const T*)(this + 1); }
- const T* end() const { return this->begin() + fCount; }
- const T& at(int index) const {
- SkASSERT((unsigned)index < (unsigned)fCount);
- return this->begin()[index];
- }
- const T& operator[](int index) const { return this->at(index); }
-
- // For the writable methods, we assert that we are the only owner if we
- // call these, since other owners are not informed if we change an element.
-
- T* writableBegin() {
- SkASSERT(this->unique());
- return (T*)(this + 1);
- }
- T* writableEnd() {
- return this->writableBegin() + fCount;
- }
- T& writableAt(int index) {
- SkASSERT((unsigned)index < (unsigned)fCount);
- return this->writableBegin()[index];
- }
-
-protected:
- virtual void internal_dispose() const SK_OVERRIDE {
- T* array = const_cast<T*>(this->begin());
- int n = fCount;
-
- for (int i = 0; i < n; ++i) {
- array->~T();
- array += 1;
- }
-
- this->internal_dispose_restore_refcnt_to_1();
- this->~SkTRefArray<T>();
- sk_free((void*)this);
- }
-
-private:
- int fCount;
-
- // hide this
- virtual ~SkTRefArray() {}
-
- typedef SkRefCnt INHERITED;
-};
-
-#endif
« no previous file with comments | « src/core/SkPictureFlat.h ('k') | tests/RefCntTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698