diff --git a/include/utils/String16.h b/include/utils/String16.h
index d98b2d0..07a0c11 100644
--- a/include/utils/String16.h
+++ b/include/utils/String16.h
@@ -205,9 +205,7 @@
 
 inline bool String16::operator==(const String16& other) const
 {
-    const size_t n1 = size();
-    const size_t n2 = other.size();
-    return n1 == n2 && strzcmp16(mString, n1, other.mString, n2) == 0;
+    return strzcmp16(mString, size(), other.mString, other.size()) == 0;
 }
 
 inline bool String16::operator!=(const String16& other) const
diff --git a/include/utils/String8.h b/include/utils/String8.h
index a129222..cef8eca 100644
--- a/include/utils/String8.h
+++ b/include/utils/String8.h
@@ -418,9 +418,7 @@
 
 inline bool String8::operator==(const String8& other) const
 {
-    return (SharedBuffer::sizeFromData(mString) ==
-            SharedBuffer::sizeFromData(other.mString)) &&
-        strcmp(mString, other.mString) == 0;
+    return strcmp(mString, other.mString) == 0;
 }
 
 inline bool String8::operator!=(const String8& other) const
