snapshot: Get new GArray item directly

Instead of building it up ourselves, then coping it into the GArray and
then getting the last element of that array.
This commit is contained in:
Timm Bäder 2019-01-11 10:05:44 +01:00 committed by Timm Bäder
parent ba9b0c6f7d
commit f4f0f0e6a0

View File

@ -112,17 +112,19 @@ gtk_snapshot_push_state (GtkSnapshot *snapshot,
int translate_y,
GtkSnapshotCollectFunc collect_func)
{
GtkSnapshotState state = { 0, };
const gsize n_states = snapshot->state_stack->len;
GtkSnapshotState *state;
state.translate_x = translate_x;
state.translate_y = translate_y;
state.collect_func = collect_func;
state.start_node_index = snapshot->nodes->len;
state.n_nodes = 0;
g_array_set_size (snapshot->state_stack, n_states + 1);
state = &g_array_index (snapshot->state_stack, GtkSnapshotState, n_states);
g_array_append_val (snapshot->state_stack, state);
state->translate_x = translate_x;
state->translate_y = translate_y;
state->collect_func = collect_func;
state->start_node_index = snapshot->nodes->len;
state->n_nodes = 0;
return &g_array_index (snapshot->state_stack, GtkSnapshotState, snapshot->state_stack->len - 1);
return state;
}
static GtkSnapshotState *