Remove SkTDict and calls from SkView.
R=reed@google.com
Change-Id: Iebfddf752a2ac210a3f5c69de8decd06d0c35617
Reviewed-on: https://skia-review.googlesource.com/7436
Commit-Queue: Herb Derby <herb@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Mike Reed <reed@google.com>
diff --git a/gn/core.gni b/gn/core.gni
index 8060836..b10b628 100644
--- a/gn/core.gni
+++ b/gn/core.gni
@@ -466,7 +466,6 @@
"$_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 cd76e72..0000000
--- 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 17eb380..091eba3 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 @@
*/
class Artist : public SkRefCnt {
public:
-
+
void draw(SkView*, SkCanvas*);
void inflate(const SkDOM&, const SkDOM::Node*);
@@ -286,7 +285,7 @@
*/
class Layout : public SkRefCnt {
public:
-
+
void layoutChildren(SkView* parent);
void inflate(const SkDOM&, const SkDOM::Node*);
@@ -313,14 +312,6 @@
/** 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 @@
/** 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 1464fa0..5732feb 100644
--- a/src/views/SkEventSink.cpp
+++ b/src/views/SkEventSink.cpp
@@ -247,54 +247,3 @@
}
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 492b2cd..9404fad 100644
--- a/src/views/SkView.cpp
+++ b/src/views/SkView.cpp
@@ -663,19 +663,6 @@
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) {