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,
|
guint n_infos,
|
||||||
gint32 parent_offset)
|
gint32 parent_offset)
|
||||||
{
|
{
|
||||||
const GtkCssSelector *max_selector = NULL;
|
|
||||||
GtkCssSelectorRuleSetInfo **matched_infos;
|
GtkCssSelectorRuleSetInfo **matched_infos;
|
||||||
guint n_matched = 0;
|
guint n_matched = 0;
|
||||||
GtkCssSelectorRuleSetInfo **remaining_infos;
|
GtkCssSelectorRuleSetInfo **remaining_infos;
|
||||||
@ -2110,6 +2109,7 @@ subdivide_infos (GByteArray *array,
|
|||||||
GHashTable *ht;
|
GHashTable *ht;
|
||||||
gint32 tree_offset;
|
gint32 tree_offset;
|
||||||
GtkCssSelectorTree *tree;
|
GtkCssSelectorTree *tree;
|
||||||
|
GtkCssSelector max_selector;
|
||||||
GHashTableIter iter;
|
GHashTableIter iter;
|
||||||
guint max_count;
|
guint max_count;
|
||||||
gpointer key, value;
|
gpointer key, value;
|
||||||
@ -2139,16 +2139,16 @@ subdivide_infos (GByteArray *array,
|
|||||||
GtkCssSelector *selector = key;
|
GtkCssSelector *selector = key;
|
||||||
if (GPOINTER_TO_UINT (value) > max_count ||
|
if (GPOINTER_TO_UINT (value) > max_count ||
|
||||||
(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_count = GPOINTER_TO_UINT (value);
|
||||||
max_selector = selector;
|
max_selector = *selector;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tree = alloc_tree (array, &tree_offset);
|
tree = alloc_tree (array, &tree_offset);
|
||||||
tree->parent_offset = parent_offset;
|
tree->parent_offset = parent_offset;
|
||||||
tree->selector = *max_selector;
|
tree->selector = max_selector;
|
||||||
|
|
||||||
/* Allocate maximum for both of them */
|
/* Allocate maximum for both of them */
|
||||||
/* TODO: Potentially dangerous? */
|
/* TODO: Potentially dangerous? */
|
||||||
@ -2160,9 +2160,9 @@ subdivide_infos (GByteArray *array,
|
|||||||
{
|
{
|
||||||
GtkCssSelectorRuleSetInfo *info = infos[i];
|
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)
|
if (info->current_selector == NULL)
|
||||||
{
|
{
|
||||||
/* Matches current node */
|
/* Matches current node */
|
||||||
|
Loading…
Reference in New Issue
Block a user