[gtk/gbsneto/css-dequeue-fix: 2/3] Revert "cssselector: Use a GtkArray to count exact matches"
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/gbsneto/css-dequeue-fix: 2/3] Revert "cssselector: Use a GtkArray to count exact matches"
- Date: Fri, 8 May 2020 13:57:38 +0000 (UTC)
commit afa7973c1fce7ea97d6ab57bf6d47aecad895a84
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Thu May 7 15:28:07 2020 -0300
Revert "cssselector: Use a GtkArray to count exact matches"
This reverts commit 49960972190401ccbaa5bfa0fcc2ab80482490b0.
gtk/gtkarrayimplprivate.h | 9 ---------
gtk/gtkcssselector.c | 21 ++++++++++-----------
2 files changed, 10 insertions(+), 20 deletions(-)
---
diff --git a/gtk/gtkarrayimplprivate.h b/gtk/gtkarrayimplprivate.h
index cfc497e1ab..0027aa5b3e 100644
--- a/gtk/gtkarrayimplprivate.h
+++ b/gtk/gtkarrayimplprivate.h
@@ -96,14 +96,5 @@ gtk_array_free (GtkArray *self,
g_ptr_array_free (self->ptr_array, TRUE);
}
-static inline void **
-gtk_array_get_data (GtkArray *self)
-{
- if (G_LIKELY (!self->ptr_array))
- return self->stack_space;
-
- return self->ptr_array->pdata;
-}
-
#endif
diff --git a/gtk/gtkcssselector.c b/gtk/gtkcssselector.c
index 5c1572e038..1c1d0c4046 100644
--- a/gtk/gtkcssselector.c
+++ b/gtk/gtkcssselector.c
@@ -24,7 +24,6 @@
#include "gtkcssprovider.h"
#include "gtkstylecontextprivate.h"
-#include "gtkarrayimplprivate.h"
#include <errno.h>
#if defined(_MSC_VER) && _MSC_VER >= 1500
@@ -2120,8 +2119,7 @@ subdivide_infos (GByteArray *array,
GHashTableIter iter;
guint max_count;
gpointer key, value;
- void *exact_matches_stack[8];
- GtkArray exact_matches_array;
+ GPtrArray *exact_matches;
gint32 res;
guint i;
@@ -2163,7 +2161,7 @@ subdivide_infos (GByteArray *array,
matched_infos = g_alloca (sizeof (GtkCssSelectorRuleSetInfo *) * n_infos);
remaining_infos = g_alloca (sizeof (GtkCssSelectorRuleSetInfo *) * n_infos);
- gtk_array_init (&exact_matches_array, (void**)exact_matches_stack, 8);
+ exact_matches = NULL;
for (i = 0; i < n_infos; i++)
{
GtkCssSelectorRuleSetInfo *info = infos[i];
@@ -2174,7 +2172,9 @@ subdivide_infos (GByteArray *array,
if (info->current_selector == NULL)
{
/* Matches current node */
- gtk_array_add (&exact_matches_array, info->match);
+ if (exact_matches == NULL)
+ exact_matches = g_ptr_array_new ();
+ g_ptr_array_add (exact_matches, info->match);
if (info->selector_match != NULL)
*info->selector_match = GUINT_TO_POINTER (tree_offset);
}
@@ -2191,14 +2191,13 @@ subdivide_infos (GByteArray *array,
}
}
- if (exact_matches_array.len > 0)
+ if (exact_matches)
{
- gtk_array_add (&exact_matches_array, NULL); /* Null terminate */
+ g_ptr_array_add (exact_matches, NULL); /* Null terminate */
res = array->len;
- g_byte_array_append (array, (guint8 *)gtk_array_get_data (&exact_matches_array),
- exact_matches_array.len * sizeof (gpointer));
-
- gtk_array_free (&exact_matches_array, NULL);
+ g_byte_array_append (array, (guint8 *)exact_matches->pdata,
+ exact_matches->len * sizeof (gpointer));
+ g_ptr_array_free (exact_matches, TRUE);
}
else
res = GTK_CSS_SELECTOR_TREE_EMPTY_OFFSET;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]