forked from AuroraMiddleware/gtk
cssselector: Fix max_selector usage
Reverts 2ae8ace784
other than code style
fixes.
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3100
This commit is contained in:
parent
40ebed3a03
commit
f3633d46ca
@ -2102,7 +2102,6 @@ subdivide_infos (GByteArray *array,
|
||||
guint n_infos,
|
||||
gint32 parent_offset)
|
||||
{
|
||||
const GtkCssSelector *max_selector = NULL;
|
||||
GtkCssSelectorRuleSetInfo **matched_infos;
|
||||
guint n_matched = 0;
|
||||
GtkCssSelectorRuleSetInfo **remaining_infos;
|
||||
@ -2110,6 +2109,7 @@ subdivide_infos (GByteArray *array,
|
||||
GHashTable *ht;
|
||||
gint32 tree_offset;
|
||||
GtkCssSelectorTree *tree;
|
||||
GtkCssSelector max_selector;
|
||||
GHashTableIter iter;
|
||||
guint max_count;
|
||||
gpointer key, value;
|
||||
@ -2139,16 +2139,16 @@ subdivide_infos (GByteArray *array,
|
||||
GtkCssSelector *selector = key;
|
||||
if (GPOINTER_TO_UINT (value) > max_count ||
|
||||
(GPOINTER_TO_UINT (value) == max_count &&
|
||||
gtk_css_selector_compare_one (selector, max_selector) < 0))
|
||||
gtk_css_selector_compare_one (selector, &max_selector) < 0))
|
||||
{
|
||||
max_count = GPOINTER_TO_UINT (value);
|
||||
max_selector = selector;
|
||||
max_selector = *selector;
|
||||
}
|
||||
}
|
||||
|
||||
tree = alloc_tree (array, &tree_offset);
|
||||
tree->parent_offset = parent_offset;
|
||||
tree->selector = *max_selector;
|
||||
tree->selector = max_selector;
|
||||
|
||||
/* Allocate maximum for both of them */
|
||||
/* TODO: Potentially dangerous? */
|
||||
@ -2160,9 +2160,9 @@ subdivide_infos (GByteArray *array,
|
||||
{
|
||||
GtkCssSelectorRuleSetInfo *info = infos[i];
|
||||
|
||||
if (gtk_css_selectors_has_initial_selector (info->current_selector, max_selector))
|
||||
if (gtk_css_selectors_has_initial_selector (info->current_selector, &max_selector))
|
||||
{
|
||||
info->current_selector = gtk_css_selectors_skip_initial_selector (info->current_selector, max_selector);
|
||||
info->current_selector = gtk_css_selectors_skip_initial_selector (info->current_selector, &max_selector);
|
||||
if (info->current_selector == NULL)
|
||||
{
|
||||
/* Matches current node */
|
||||
|
Loading…
Reference in New Issue
Block a user