diff options
-rw-r--r-- | gn/core.gni | 1 | ||||
-rw-r--r-- | include/private/SkTDict.h | 146 | ||||
-rw-r--r-- | include/views/SkView.h | 14 | ||||
-rw-r--r-- | src/views/SkEventSink.cpp | 51 | ||||
-rw-r--r-- | src/views/SkView.cpp | 13 |
5 files changed, 2 insertions, 223 deletions
diff --git a/gn/core.gni b/gn/core.gni index 8060836483..b10b628be0 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -466,7 +466,6 @@ skia_core_sources = [ "$_include/private/SkTFitsIn.h", "$_include/private/SkTHash.h", "$_include/private/SkThreadID.h", - "$_include/private/SkTDict.h", "$_include/private/SkTSearch.h", "$_include/private/SkTLogic.h", "$_include/private/SkWeakRefCnt.h", diff --git a/include/private/SkTDict.h b/include/private/SkTDict.h deleted file mode 100644 index cd76e72999..0000000000 --- a/include/private/SkTDict.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright 2006 The Android Open Source Project - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SkTDict_DEFINED -#define SkTDict_DEFINED - -#include "SkArenaAlloc.h" -#include "SkTSearch.h" -#include "SkTDArray.h" - -template <typename T> class SkTDict : SkNoncopyable { -public: - SkTDict(size_t minStringAlloc) : fStrings(minStringAlloc) {} - - void reset() { - fArray.reset(); - fStrings.reset(); - } - - int count() const { return fArray.count(); } - - bool set(const char name[], const T& value) { - return set(name, strlen(name), value); - } - - bool set(const char name[], size_t len, const T& value) { - SkASSERT(name); - - int index = this->find_index(name, len); - - if (index >= 0) { - fArray[index].fValue = value; - return false; - } else { - Pair* pair = fArray.insert(~index); - char* copy = fStrings.makeArrayDefault<char>(len + 1); - memcpy(copy, name, len); - copy[len] = '\0'; - pair->fName = copy; - pair->fValue = value; - return true; - } - } - - bool find(const char name[]) const { - return this->find_index(name) >= 0; - } - - bool find(const char name[], size_t len) const { - return this->find_index(name, len) >= 0; - } - - bool find(const char name[], T* value) const { - return find(name, strlen(name), value); - } - - bool find(const char name[], size_t len, T* value) const { - int index = this->find_index(name, len); - - if (index >= 0) { - if (value) { - *value = fArray[index].fValue; - } - return true; - } - return false; - } - - bool findKey(T& value, const char** name) const { - const Pair* end = fArray.end(); - for (const Pair* pair = fArray.begin(); pair < end; pair++) { - if (pair->fValue != value) { - continue; - } - *name = pair->fName; - return true; - } - return false; - } - -public: - struct Pair { - const char* fName; - T fValue; - - friend int operator<(const Pair& a, const Pair& b) { - return strcmp(a.fName, b.fName); - } - - friend int operator!=(const Pair& a, const Pair& b) { - return strcmp(a.fName, b.fName); - } - }; - friend class Iter; - -public: - class Iter { - public: - Iter(const SkTDict<T>& dict) { - fIter = dict.fArray.begin(); - fStop = dict.fArray.end(); - } - - const char* next(T* value) { - const char* name = NULL; - if (fIter < fStop) { - name = fIter->fName; - if (value) { - *value = fIter->fValue; - } - fIter += 1; - } - return name; - } - private: - const Pair* fIter; - const Pair* fStop; - }; - -private: - SkTDArray<Pair> fArray; - SkArenaAlloc fStrings; - - int find_index(const char name[]) const { - return find_index(name, strlen(name)); - } - - int find_index(const char name[], size_t len) const { - SkASSERT(name); - - int count = fArray.count(); - int index = ~0; - - if (count) { - index = SkStrSearch(&fArray.begin()->fName, count, name, len, sizeof(Pair)); - } - return index; - } - friend class Iter; -}; - -#endif diff --git a/include/views/SkView.h b/include/views/SkView.h index 17eb3800f4..091eba366d 100644 --- a/include/views/SkView.h +++ b/include/views/SkView.h @@ -13,7 +13,6 @@ #include "SkEventSink.h" #include "SkRect.h" #include "SkDOM.h" -#include "../private/SkTDict.h" #include "SkMatrix.h" #include "SkMetaData.h" @@ -258,7 +257,7 @@ public: */ class Artist : public SkRefCnt { public: - + void draw(SkView*, SkCanvas*); void inflate(const SkDOM&, const SkDOM::Node*); @@ -286,7 +285,7 @@ public: */ class Layout : public SkRefCnt { public: - + void layoutChildren(SkView* parent); void inflate(const SkDOM&, const SkDOM::Node*); @@ -313,14 +312,6 @@ public: /** Call this to initialize this view based on the specified XML node */ void inflate(const SkDOM& dom, const SkDOM::Node* node); - /** After a view hierarchy is inflated, this may be called with a dictionary - containing pairs of <name, view*>, where the name string was the view's - "id" attribute when it was inflated. - - This will call the virtual onPostInflate for this view, and the recursively - call postInflate on all of the view's children. - */ - void postInflate(const SkTDict<SkView*>& ids); SkDEBUGCODE(void dump(bool recurse) const;) @@ -362,7 +353,6 @@ protected: /** Override this if you want to perform post initialization work based on the ID dictionary built during XML parsing. Be sure to call the inherited version too. */ - virtual void onPostInflate(const SkTDict<SkView*>&); public: #ifdef SK_DEBUG diff --git a/src/views/SkEventSink.cpp b/src/views/SkEventSink.cpp index 1464fa0fac..5732feb395 100644 --- a/src/views/SkEventSink.cpp +++ b/src/views/SkEventSink.cpp @@ -247,54 +247,3 @@ SkEventSink* SkEventSink::FindSink(SkEventSinkID sinkID) } return nullptr; } - -//////////////////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////////////////// - -#if 0 // experimental, not tested - -#include "SkMutex.h" -#include "SkTDict.h" - -#define kMinStringBufferSize 128 -SK_DECLARE_STATIC_MUTEX(gNamedSinkMutex); -static SkTDict<SkEventSinkID> gNamedSinkIDs(kMinStringBufferSize); - -/** Register a name/id pair with the system. If the name already exists, - replace its ID with the new id. This pair will persist until UnregisterNamedSink() - is called. -*/ -void SkEventSink::RegisterNamedSinkID(const char name[], SkEventSinkID id) -{ - if (id && name && *name) - { - SkAutoMutexAcquire ac(gNamedSinkMutex); - gNamedSinkIDs.set(name, id); - } -} - -/** Return the id that matches the specified name (from a previous call to - RegisterNamedSinkID(). If no match is found, return 0 -*/ -SkEventSinkID SkEventSink::FindNamedSinkID(const char name[]) -{ - SkEventSinkID id = 0; - - if (name && *name) - { - SkAutoMutexAcquire ac(gNamedSinkMutex); - (void)gNamedSinkIDs.find(name, &id); - } - return id; -} - -/** Remove all name/id pairs from the system. This is call internally - on shutdown, to ensure no memory leaks. It should not be called - before shutdown. -*/ -void SkEventSink::RemoveAllNamedSinkIDs() -{ - SkAutoMutexAcquire ac(gNamedSinkMutex); - (void)gNamedSinkIDs.reset(); -} -#endif diff --git a/src/views/SkView.cpp b/src/views/SkView.cpp index 492b2cdac1..9404fad625 100644 --- a/src/views/SkView.cpp +++ b/src/views/SkView.cpp @@ -663,19 +663,6 @@ void SkView::inflate(const SkDOM& dom, const SkDOM::Node* node) { this->onInflate(dom, node); } -void SkView::onPostInflate(const SkTDict<SkView*>&) { - // override in subclass as needed -} - -void SkView::postInflate(const SkTDict<SkView*>& dict) { - this->onPostInflate(dict); - - B2FIter iter(this); - SkView* child; - while ((child = iter.next()) != nullptr) - child->postInflate(dict); -} - ////////////////////////////////////////////////////////////////// SkView* SkView::sendEventToParents(const SkEvent& evt) { |