diff --git a/libs/hwui/Patch.cpp b/libs/hwui/Patch.cpp
index c2ebee0..253a19b 100644
--- a/libs/hwui/Patch.cpp
+++ b/libs/hwui/Patch.cpp
@@ -19,7 +19,6 @@
 #include <cmath>
 
 #include <utils/Log.h>
-#include <utils/String8.h>
 
 #include "Patch.h"
 #include "Caches.h"
diff --git a/libs/hwui/Patch.h b/libs/hwui/Patch.h
index 869b3bf..ce898937 100644
--- a/libs/hwui/Patch.h
+++ b/libs/hwui/Patch.h
@@ -61,14 +61,14 @@
     uint32_t colorKey;
 
     bool operator<(const PatchDescription& rhs) const {
-        FLOAT_COMPARE(bitmapWidth) {
-            FLOAT_COMPARE(bitmapHeight) {
-                FLOAT_COMPARE(pixelWidth) {
-                    FLOAT_COMPARE(pixelHeight) {
-                        INT_COMPARE(xCount) {
-                            INT_COMPARE(yCount) {
-                                INT_COMPARE(emptyCount) {
-                                    INT_COMPARE(colorKey) return false;
+        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;
                                 }
                             }
                         }
diff --git a/libs/hwui/PathCache.h b/libs/hwui/PathCache.h
index af6822d..9a5fc45 100644
--- a/libs/hwui/PathCache.h
+++ b/libs/hwui/PathCache.h
@@ -64,12 +64,12 @@
     float strokeWidth;
 
     bool operator<(const PathCacheEntry& rhs) const {
-        INT_COMPARE(path) {
-            INT_COMPARE(join) {
-                INT_COMPARE(cap) {
-                    INT_COMPARE(style) {
-                        FLOAT_COMPARE(miter) {
-                            FLOAT_COMPARE(strokeWidth) return false;
+        LTE_INT(path) {
+            LTE_INT(join) {
+                LTE_INT(cap) {
+                    LTE_INT(style) {
+                        LTE_FLOAT(miter) {
+                            LTE_FLOAT(strokeWidth) return false;
                         }
                     }
                 }
diff --git a/libs/hwui/utils/Compare.h b/libs/hwui/utils/Compare.h
index ddb9c0b..5ea0fc9 100644
--- a/libs/hwui/utils/Compare.h
+++ b/libs/hwui/utils/Compare.h
@@ -26,14 +26,14 @@
 /**
  * Compare floats.
  */
-#define FLOAT_COMPARE(a) \
+#define LTE_FLOAT(a) \
     if (a < rhs.a) return true; \
     if (ALMOST_EQUAL(a, rhs.a))
 
 /**
  * Compare integers.
  */
-#define INT_COMPARE(a) \
+#define LTE_INT(a) \
     if (a < rhs.a) return true; \
     if (a == rhs.a)
 
