Compare commits

...

1 Commits

Author SHA1 Message Date
Christian Hergert
bff61a1ef1 gskglrenderops: ref transform before releasing previous transform
Transforms may reference other transforms, so it is important to ref the
incoming transform before releasing any previous one. Otherwise, we risk
freeing the transform we wish to ref.
2019-07-26 11:03:27 -07:00

View File

@@ -233,11 +233,14 @@ ops_set_program (RenderOpBuilder *builder,
if (program_state->modelview == NULL ||
!gsk_transform_equal (builder->current_modelview, program_state->modelview))
{
GskTransform *freeme;
op.op = OP_CHANGE_MODELVIEW;
gsk_transform_to_matrix (builder->current_modelview, &op.modelview);
g_array_append_val (builder->render_ops, op);
gsk_transform_unref (program_state->modelview);
freeme = program_state->modelview;
program_state->modelview = gsk_transform_ref (builder->current_modelview);
gsk_transform_unref (freeme);
}
if (rect_equal (&empty_rect, &program_state->viewport) ||