Revert "add DeviceInfo"

This reverts commit b2442896e3a226c7ebe9d47fa80b257e98a6a34d.

Change-Id: I50f6555451f71067505245333c8e558b5e3b2b3b
diff --git a/libs/hwui/Android.mk b/libs/hwui/Android.mk
index 2dfd199..ae5fa6c 100644
--- a/libs/hwui/Android.mk
+++ b/libs/hwui/Android.mk
@@ -39,7 +39,6 @@
     DamageAccumulator.cpp \
     DeferredDisplayList.cpp \
     DeferredLayerUpdater.cpp \
-    DeviceInfo.cpp \
     DisplayList.cpp \
     DisplayListCanvas.cpp \
     Dither.cpp \
@@ -205,7 +204,6 @@
     unit_tests/CanvasStateTests.cpp \
     unit_tests/ClipAreaTests.cpp \
     unit_tests/DamageAccumulatorTests.cpp \
-    unit_tests/DeviceInfoTests.cpp \
     unit_tests/FatVectorTests.cpp \
     unit_tests/LayerUpdateQueueTests.cpp \
     unit_tests/LinearAllocatorTests.cpp \
diff --git a/libs/hwui/DeviceInfo.cpp b/libs/hwui/DeviceInfo.cpp
deleted file mode 100644
index 03b1706..0000000
--- a/libs/hwui/DeviceInfo.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2015 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 <DeviceInfo.h>
-
-#include "Extensions.h"
-
-#include <GLES2/gl2.h>
-
-#include <thread>
-#include <mutex>
-
-namespace android {
-namespace uirenderer {
-
-static DeviceInfo* sDeviceInfo = nullptr;
-static std::once_flag sInitializedFlag;
-
-const DeviceInfo* DeviceInfo::get() {
-    return sDeviceInfo;
-}
-
-void DeviceInfo::initialize() {
-    std::call_once(sInitializedFlag, []() {
-        sDeviceInfo = new DeviceInfo();
-        sDeviceInfo->load();
-    });
-}
-
-void DeviceInfo::load() {
-    mExtensions.load();
-    glGetIntegerv(GL_MAX_TEXTURE_SIZE, &mMaxTextureSize);
-}
-
-} /* namespace uirenderer */
-} /* namespace android */
diff --git a/libs/hwui/DeviceInfo.h b/libs/hwui/DeviceInfo.h
deleted file mode 100644
index f576a4f..0000000
--- a/libs/hwui/DeviceInfo.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-#ifndef DEVICEINFO_H
-#define DEVICEINFO_H
-
-#include "Extensions.h"
-#include "utils/Macros.h"
-
-namespace android {
-namespace uirenderer {
-
-class DeviceInfo {
-    PREVENT_COPY_AND_ASSIGN(DeviceInfo);
-public:
-    // returns nullptr if DeviceInfo is not initialized yet
-    // Note this does not have a memory fence so it's up to the caller
-    // to use one if required. Normally this should not be necessary
-    static const DeviceInfo* get();
-
-    // only call this after GL has been initialized, or at any point if compiled
-    // with HWUI_NULL_GPU
-    static void initialize();
-
-    const Extensions& extensions() const { return mExtensions; }
-
-    int maxTextureSize() const { return mMaxTextureSize; }
-
-private:
-    DeviceInfo() {}
-    ~DeviceInfo() {}
-
-    void load();
-
-    Extensions mExtensions;
-    int mMaxTextureSize;
-};
-
-} /* namespace uirenderer */
-} /* namespace android */
-
-#endif /* DEVICEINFO_H */
diff --git a/libs/hwui/Extensions.cpp b/libs/hwui/Extensions.cpp
index e257715..6dd29ad 100644
--- a/libs/hwui/Extensions.cpp
+++ b/libs/hwui/Extensions.cpp
@@ -35,8 +35,8 @@
 #endif
 
 
-void Extensions::load() {
-    auto extensions = StringUtils::split((const char*) glGetString(GL_EXTENSIONS));
+Extensions::Extensions() {
+    StringCollection extensions((const char*) glGetString(GL_EXTENSIONS));
     mHasNPot = extensions.has("GL_OES_texture_npot");
     mHasFramebufferFetch = extensions.has("GL_NV_shader_framebuffer_fetch");
     mHasDiscardFramebuffer = extensions.has("GL_EXT_discard_framebuffer");
diff --git a/libs/hwui/Extensions.h b/libs/hwui/Extensions.h
index 8ccfabd..6689b88 100644
--- a/libs/hwui/Extensions.h
+++ b/libs/hwui/Extensions.h
@@ -19,9 +19,6 @@
 
 #include <cutils/compiler.h>
 
-#include <string>
-#include <unordered_set>
-
 namespace android {
 namespace uirenderer {
 
@@ -29,9 +26,9 @@
 // Classes
 ///////////////////////////////////////////////////////////////////////////////
 
-class Extensions {
+class ANDROID_API Extensions {
 public:
-    void load();
+    Extensions();
 
     inline bool hasNPot() const { return mHasNPot; }
     inline bool hasFramebufferFetch() const { return mHasFramebufferFetch; }
diff --git a/libs/hwui/renderthread/EglManager.cpp b/libs/hwui/renderthread/EglManager.cpp
index 78df297..485759b 100644
--- a/libs/hwui/renderthread/EglManager.cpp
+++ b/libs/hwui/renderthread/EglManager.cpp
@@ -17,14 +17,15 @@
 #include "EglManager.h"
 
 #include "Caches.h"
-#include "DeviceInfo.h"
 #include "Properties.h"
 #include "RenderThread.h"
 #include "renderstate/RenderState.h"
 #include "utils/StringUtils.h"
+
 #include <cutils/log.h>
 #include <cutils/properties.h>
 #include <EGL/eglext.h>
+
 #include <string>
 
 #define GLES_VERSION 2
@@ -128,14 +129,12 @@
     createContext();
     createPBufferSurface();
     makeCurrent(mPBufferSurface);
-    DeviceInfo::initialize();
     mRenderThread.renderState().onGLContextCreated();
     initAtlas();
 }
 
 void EglManager::initExtensions() {
-    auto extensions = StringUtils::split(
-            eglQueryString(mEglDisplay, EGL_EXTENSIONS));
+    StringCollection extensions(eglQueryString(mEglDisplay, EGL_EXTENSIONS));
     EglExtensions.bufferAge = extensions.has("EGL_EXT_buffer_age");
     EglExtensions.setDamage = extensions.has("EGL_KHR_partial_update");
     LOG_ALWAYS_FATAL_IF(!extensions.has("EGL_KHR_swap_buffers_with_damage"),
diff --git a/libs/hwui/unit_tests/DeviceInfoTests.cpp b/libs/hwui/unit_tests/DeviceInfoTests.cpp
deleted file mode 100644
index c3c68ae..0000000
--- a/libs/hwui/unit_tests/DeviceInfoTests.cpp
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2015 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 "DeviceInfo.h"
-
-#include <gtest/gtest.h>
-
-using namespace android;
-using namespace android::uirenderer;
-
-TEST(DeviceInfo, basic) {
-    const DeviceInfo* di = DeviceInfo::get();
-    EXPECT_EQ(nullptr, di) << "DeviceInfo was already initialized?";
-    DeviceInfo::initialize();
-    di = DeviceInfo::get();
-    ASSERT_NE(nullptr, di) << "DeviceInfo initialization failed";
-    EXPECT_EQ(2048, di->maxTextureSize()) << "Max texture size didn't match";
-}
diff --git a/libs/hwui/unit_tests/StringUtilsTests.cpp b/libs/hwui/unit_tests/StringUtilsTests.cpp
index 6b2e265..5174ae9 100644
--- a/libs/hwui/unit_tests/StringUtilsTests.cpp
+++ b/libs/hwui/unit_tests/StringUtilsTests.cpp
@@ -16,13 +16,13 @@
 
 #include <gtest/gtest.h>
 
-#include <utils/StringUtils.h>
+#include "utils/StringUtils.h"
 
-using namespace android;
-using namespace android::uirenderer;
+namespace android {
+namespace uirenderer {
 
 TEST(StringUtils, simpleBuildSet) {
-    auto collection = StringUtils::split("a b c");
+    StringCollection collection("a b c");
 
     EXPECT_TRUE(collection.has("a"));
     EXPECT_TRUE(collection.has("b"));
@@ -31,8 +31,11 @@
 }
 
 TEST(StringUtils, advancedBuildSet) {
-    auto collection = StringUtils::split("GL_ext1 GL_ext2 GL_ext3");
+    StringCollection collection("GL_ext1 GL_ext2 GL_ext3");
 
     EXPECT_TRUE(collection.has("GL_ext1"));
     EXPECT_FALSE(collection.has("GL_ext")); // string present, but not in list
 }
+
+};
+};
diff --git a/libs/hwui/utils/StringUtils.cpp b/libs/hwui/utils/StringUtils.cpp
index ccddd3c..a1df0e7 100644
--- a/libs/hwui/utils/StringUtils.cpp
+++ b/libs/hwui/utils/StringUtils.cpp
@@ -14,24 +14,26 @@
  * limitations under the License.
  */
 
-#include <utils/StringUtils.h>
+#include "StringUtils.h"
 
 namespace android {
 namespace uirenderer {
 
-unordered_string_set&& StringUtils::split(const char* spacedList) {
-    unordered_string_set set;
+StringCollection::StringCollection(const char* spacedList) {
     const char* current = spacedList;
     const char* head = current;
     do {
         head = strchr(current, ' ');
         std::string s(current, head ? head - current : strlen(current));
         if (s.length()) {
-            set.insert(std::move(s));
+            mSet.insert(s);
         }
         current = head + 1;
     } while (head);
-    return std::move(set);
+}
+
+bool StringCollection::has(const char* s) {
+    return mSet.find(std::string(s)) != mSet.end();
 }
 
 }; // namespace uirenderer
diff --git a/libs/hwui/utils/StringUtils.h b/libs/hwui/utils/StringUtils.h
index 28b3d63..ef2a6d5 100644
--- a/libs/hwui/utils/StringUtils.h
+++ b/libs/hwui/utils/StringUtils.h
@@ -22,16 +22,12 @@
 namespace android {
 namespace uirenderer {
 
-class unordered_string_set : public std::unordered_set<std::string> {
+class StringCollection {
 public:
-    bool has(const char* str) {
-        return find(std::string(str)) != end();
-    }
-};
-
-class StringUtils {
-public:
-    static unordered_string_set&& split(const char* spacedList);
+    StringCollection(const char* spacedList);
+    bool has(const char* string);
+private:
+    std::unordered_set<std::string> mSet;
 };
 
 } /* namespace uirenderer */