[glib: 1/2] Cast to guintptr instead of subtracting by null




commit b4b2f75bfd39470342a7b87daf5261a0cb074d73
Author: TestingPlant <49836-TestingPlant users noreply gitlab gnome org>
Date:   Sat Apr 30 22:37:03 2022 +0000

    Cast to guintptr instead of subtracting by null
    
    Subtraction by a null pointer is undefined behavior, so it's been
    replaced with a cast to guintptr.

 glib/gqsort.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)
---
diff --git a/glib/gqsort.c b/glib/gqsort.c
index 90e65aefe1..86580f524e 100644
--- a/glib/gqsort.c
+++ b/glib/gqsort.c
@@ -263,16 +263,15 @@ msort_r (void *b, size_t n, size_t s, GCompareDataFunc cmp, void *arg)
   else
     {
       if ((s & (sizeof (guint32) - 1)) == 0
-         && ((char *) b - (char *) 0) % ALIGNOF_GUINT32 == 0)
+         && (guintptr) b % ALIGNOF_GUINT32 == 0)
        {
          if (s == sizeof (guint32))
            p.var = 0;
          else if (s == sizeof (guint64)
-                  && ((char *) b - (char *) 0) % ALIGNOF_GUINT64 == 0)
+                  && (guintptr) b % ALIGNOF_GUINT64 == 0)
            p.var = 1;
          else if ((s & (sizeof (unsigned long) - 1)) == 0
-                  && ((char *) b - (char *) 0)
-                     % ALIGNOF_UNSIGNED_LONG == 0)
+                  && (guintptr) b % ALIGNOF_UNSIGNED_LONG == 0)
            p.var = 2;
        }
       msort_with_tmp (&p, b, n);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]