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) {