int n_cascades;
int *cascade_index; /* each one points at last index that was returned, */
/* not next one that should be returned */
+ int index_[20];
};
struct _GtkStyleProviderData
while ((cas = cas->parent) != NULL)
iter->n_cascades++;
- iter->cascade_index = g_new (int, iter->n_cascades);
+ if (iter->n_cascades < 20)
+ iter->cascade_index = iter->index_;
+ else
+ iter->cascade_index = g_new (int, iter->n_cascades);
+
for (cas = cascade, ix = 0; ix < iter->n_cascades; cas = cas->parent, ix++)
iter->cascade_index[ix] = cas->providers->len;
static void
gtk_style_cascade_iter_clear (GtkStyleCascadeIter *iter)
{
- g_free (iter->cascade_index);
+ if (iter->cascade_index != iter->index_)
+ g_free (iter->cascade_index);
}
static GtkSettings *