[PATCH:libXau 4/5] Call memcmp() instead of defining our own equivalent

Alan Coopersmith alan.coopersmith at oracle.com
Sat Mar 30 14:32:40 PDT 2013


Stops casting len parameters to int in callers so that this change
doesn't introduce warnings that we're taking unsigned values, casting
them to signed, then passing to a function that wants them unsigned.

Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
---
 AuGetAddr.c |   15 ++++-----------
 AuGetBest.c |   15 ++++-----------
 2 files changed, 8 insertions(+), 22 deletions(-)

diff --git a/AuGetAddr.c b/AuGetAddr.c
index 897d8b5..6f5fe16 100644
--- a/AuGetAddr.c
+++ b/AuGetAddr.c
@@ -30,14 +30,7 @@ in this Software without prior written authorization from The Open Group.
 #include <X11/Xauth.h>
 #include <X11/Xos.h>
 
-static int
-binaryEqual (_Xconst char *a, _Xconst char *b, int len)
-{
-    while (len--)
-	if (*a++ != *b++)
-	    return 0;
-    return 1;
-}
+#define binaryEqual(a, b, len) (memcmp(a, b, len) == 0)
 
 Xauth *
 XauGetAuthByAddr (
@@ -94,13 +87,13 @@ _Xconst char*	name)
 	if ((family == FamilyWild || entry->family == FamilyWild ||
 	     (entry->family == family &&
 	      address_length == entry->address_length &&
-	      binaryEqual (entry->address, address, (int)address_length))) &&
+	      binaryEqual (entry->address, address, address_length))) &&
 	    (number_length == 0 || entry->number_length == 0 ||
 	     (number_length == entry->number_length &&
-	      binaryEqual (entry->number, number, (int)number_length))) &&
+	      binaryEqual (entry->number, number, number_length))) &&
 	    (name_length == 0 || entry->name_length == 0 ||
 	     (entry->name_length == name_length &&
- 	      binaryEqual (entry->name, name, (int)name_length))))
+	      binaryEqual (entry->name, name, name_length))))
 	    break;
 	XauDisposeAuth (entry);
     }
diff --git a/AuGetBest.c b/AuGetBest.c
index 673ee40..5556559 100644
--- a/AuGetBest.c
+++ b/AuGetBest.c
@@ -38,14 +38,7 @@ in this Software without prior written authorization from The Open Group.
 #include <X11/Xos_r.h>
 #endif
 
-static int
-binaryEqual (_Xconst char *a, _Xconst char *b, int len)
-{
-    while (len--)
-	if (*a++ != *b++)
-	    return 0;
-    return 1;
-}
+#define binaryEqual(a, b, len) (memcmp(a, b, len) == 0)
 
 Xauth *
 XauGetBestAuthByAddr (
@@ -129,17 +122,17 @@ XauGetBestAuthByAddr (
 	if ((family == FamilyWild || entry->family == FamilyWild ||
 	     (entry->family == family &&
 	     ((address_length == entry->address_length &&
-	      binaryEqual (entry->address, address, (int)address_length))
+	      binaryEqual (entry->address, address, address_length))
 #ifdef hpux
 	     || (family == FamilyLocal &&
 		fully_qual_address_length == entry->address_length &&
 	     	binaryEqual (entry->address, fully_qual_address,
-		    (int) fully_qual_address_length))
+		    fully_qual_address_length))
 #endif
 	    ))) &&
 	    (number_length == 0 || entry->number_length == 0 ||
 	     (number_length == entry->number_length &&
-	      binaryEqual (entry->number, number, (int)number_length))))
+	      binaryEqual (entry->number, number, number_length))))
 	{
 	    if (best_type == 0)
 	    {
-- 
1.7.9.2



More information about the xorg-devel mailing list