Remove obsolete header file

We now use the same mechanism to compare keys everywhere in libhwui.

Change-Id: I8b3cb25b13f4f38eb6f12aed0356f796a773617c
diff --git a/core/jni/android/graphics/TextLayoutCache.h b/core/jni/android/graphics/TextLayoutCache.h
index 29805ee..6858c0e 100644
--- a/core/jni/android/graphics/TextLayoutCache.h
+++ b/core/jni/android/graphics/TextLayoutCache.h
@@ -24,7 +24,6 @@
 #include <utils/String16.h>
 #include <utils/LruCache.h>
 #include <utils/KeyedVector.h>
-#include <utils/Compare.h>
 #include <utils/RefBase.h>
 #include <utils/Singleton.h>
 
diff --git a/libs/hwui/Matrix.cpp b/libs/hwui/Matrix.cpp
index 79fae2b..5cec5a8 100644
--- a/libs/hwui/Matrix.cpp
+++ b/libs/hwui/Matrix.cpp
@@ -24,7 +24,6 @@
 
 #include <SkMatrix.h>
 
-#include "utils/Compare.h"
 #include "Matrix.h"
 
 namespace android {
diff --git a/libs/hwui/Patch.h b/libs/hwui/Patch.h
index cab0e54..ee7bf70 100644
--- a/libs/hwui/Patch.h
+++ b/libs/hwui/Patch.h
@@ -25,7 +25,6 @@
 
 #include "Rect.h"
 #include "Vertex.h"
-#include "utils/Compare.h"
 
 namespace android {
 namespace uirenderer {
diff --git a/libs/hwui/PatchCache.cpp b/libs/hwui/PatchCache.cpp
index 8ee8f5c..f48f857 100644
--- a/libs/hwui/PatchCache.cpp
+++ b/libs/hwui/PatchCache.cpp
@@ -42,6 +42,35 @@
 // Caching
 ///////////////////////////////////////////////////////////////////////////////
 
+int PatchCache::PatchDescription::compare(
+        const PatchCache::PatchDescription& lhs, const PatchCache::PatchDescription& rhs) {
+    int deltaInt = lhs.bitmapWidth - rhs.bitmapWidth;
+    if (deltaInt != 0) return deltaInt;
+
+    deltaInt = lhs.bitmapHeight - rhs.bitmapHeight;
+    if (deltaInt != 0) return deltaInt;
+
+    if (lhs.pixelWidth < rhs.pixelWidth) return -1;
+    if (lhs.pixelWidth > lhs.pixelWidth) return +1;
+
+    if (lhs.pixelHeight < rhs.pixelHeight) return -1;
+    if (lhs.pixelHeight > lhs.pixelHeight) return +1;
+
+    deltaInt = lhs.xCount - rhs.xCount;
+    if (deltaInt != 0) return deltaInt;
+
+    deltaInt = lhs.yCount - rhs.yCount;
+    if (deltaInt != 0) return deltaInt;
+
+    deltaInt = lhs.emptyCount - rhs.emptyCount;
+    if (deltaInt != 0) return deltaInt;
+
+    deltaInt = lhs.colorKey - rhs.colorKey;
+    if (deltaInt != 0) return deltaInt;
+
+    return 0;
+}
+
 void PatchCache::clear() {
     size_t count = mCache.size();
     for (size_t i = 0; i < count; i++) {
@@ -50,7 +79,7 @@
     mCache.clear();
 }
 
-Patch* PatchCache::get(const float bitmapWidth, const float bitmapHeight,
+Patch* PatchCache::get(const uint32_t bitmapWidth, const uint32_t bitmapHeight,
         const float pixelWidth, const float pixelHeight,
         const int32_t* xDivs, const int32_t* yDivs, const uint32_t* colors,
         const uint32_t width, const uint32_t height, const int8_t numColors) {
diff --git a/libs/hwui/PatchCache.h b/libs/hwui/PatchCache.h
index 505798a..0822cba 100644
--- a/libs/hwui/PatchCache.h
+++ b/libs/hwui/PatchCache.h
@@ -19,7 +19,6 @@
 
 #include <utils/KeyedVector.h>
 
-#include "utils/Compare.h"
 #include "Debug.h"
 #include "Patch.h"
 
@@ -47,7 +46,7 @@
     PatchCache(uint32_t maxCapacity);
     ~PatchCache();
 
-    Patch* get(const float bitmapWidth, const float bitmapHeight,
+    Patch* get(const uint32_t bitmapWidth, const uint32_t bitmapHeight,
             const float pixelWidth, const float pixelHeight,
             const int32_t* xDivs, const int32_t* yDivs, const uint32_t* colors,
             const uint32_t width, const uint32_t height, const int8_t numColors);
@@ -70,7 +69,7 @@
                 xCount(0), yCount(0), emptyCount(0), colorKey(0) {
         }
 
-        PatchDescription(const float bitmapWidth, const float bitmapHeight,
+        PatchDescription(const uint32_t bitmapWidth, const uint32_t bitmapHeight,
                 const float pixelWidth, const float pixelHeight,
                 const uint32_t xCount, const uint32_t yCount,
                 const int8_t emptyCount, const uint32_t colorKey):
@@ -80,28 +79,29 @@
                 emptyCount(emptyCount), colorKey(colorKey) {
         }
 
-        bool operator<(const PatchDescription& rhs) const {
-            LTE_FLOAT(bitmapWidth) {
-                LTE_FLOAT(bitmapHeight) {
-                    LTE_FLOAT(pixelWidth) {
-                        LTE_FLOAT(pixelHeight) {
-                            LTE_INT(xCount) {
-                                LTE_INT(yCount) {
-                                    LTE_INT(emptyCount) {
-                                        LTE_INT(colorKey) return false;
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-            return false;
+        static int compare(const PatchDescription& lhs, const PatchDescription& rhs);
+
+        bool operator==(const PatchDescription& other) const {
+            return compare(*this, other) == 0;
+        }
+
+        bool operator!=(const PatchDescription& other) const {
+            return compare(*this, other) != 0;
+        }
+
+        friend inline int strictly_order_type(const PatchDescription& lhs,
+                const PatchDescription& rhs) {
+            return PatchDescription::compare(lhs, rhs) < 0;
+        }
+
+        friend inline int compare_type(const PatchDescription& lhs,
+                const PatchDescription& rhs) {
+            return PatchDescription::compare(lhs, rhs);
         }
 
     private:
-        float bitmapWidth;
-        float bitmapHeight;
+        uint32_t bitmapWidth;
+        uint32_t bitmapHeight;
         float pixelWidth;
         float pixelHeight;
         uint32_t xCount;
diff --git a/libs/hwui/utils/Compare.h b/libs/hwui/utils/Compare.h
deleted file mode 100644
index fdd9acf..0000000
--- a/libs/hwui/utils/Compare.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2010 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 ANDROID_HWUI_COMPARE_H
-#define ANDROID_HWUI_COMPARE_H
-
-#include <cmath>
-
-/**
- * Compare floats.
- */
-#define LTE_FLOAT(a) \
-    if (a < rhs.a) return true; \
-    if (a == rhs.a)
-
-/**
- * Compare integers.
- */
-#define LTE_INT(a) \
-    if (a < rhs.a) return true; \
-    if (a == rhs.a)
-
-#endif // ANDROID_HWUI_COMPARE_H