[glib: 1/12] dataset: Do not increment




commit 8c4598aab31759e3c296b54f39630d028ce2334a
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date:   Wed Jun 22 12:51:07 2022 -0400

    dataset: Do not increment
    
    Do not increment the `data` pointer when it points to an item that has
    not been inspected.
    
    Helps https://gitlab.gnome.org/GNOME/glib/-/issues/2672

 glib/gdataset.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
---
diff --git a/glib/gdataset.c b/glib/gdataset.c
index 6b78d2e33f..cc19c96749 100644
--- a/glib/gdataset.c
+++ b/glib/gdataset.c
@@ -528,11 +528,8 @@ g_data_remove_internal (GData  **datalist,
               old[found_keys] = *data;
               found_keys++;
 
-              if (data < data_end)
-                {
-                  data_end--;
-                  *data = *data_end;
-                }
+              if (data < --data_end)
+                *data = *data_end;
 
               d->len--;
 
@@ -546,8 +543,10 @@ g_data_remove_internal (GData  **datalist,
                   break;
                 }
             }
-
-          data++;
+          else
+            {
+              data++;
+            }
         }
 
       if (found_keys > 0)


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