diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-09-28 13:50:15 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-09-28 13:50:15 -0400 |
commit | 32975100407981df8148095740751ae53d996443 (patch) | |
tree | d3155ef32ee7404a19131beae16516624e823308 | |
parent | a2849d3f7a62258b787fe0729c8baf7c1427c321 (diff) | |
download | gtk+-32975100407981df8148095740751ae53d996443.tar.gz |
gsk: Improve gsk_gl_shader_node_new preconditions
Check all that we can.
-rw-r--r-- | gsk/gskrendernodeimpl.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gsk/gskrendernodeimpl.c b/gsk/gskrendernodeimpl.c index 2a1c6d038a..8ca1ece25d 100644 --- a/gsk/gskrendernodeimpl.c +++ b/gsk/gskrendernodeimpl.c @@ -4571,9 +4571,13 @@ gsk_gl_shader_node_new (GskGLShader *shader, { GskGLShaderNode *self; GskRenderNode *node; - int uniforms_size; + g_return_val_if_fail (GSK_IS_GL_SHADER (shader), NULL); g_return_val_if_fail (bounds != NULL, NULL); + g_return_val_if_fail ((args == NULL && gsk_gl_shader_get_n_uniforms (shader) == 0) || + (args != NULL && g_bytes_get_size (args) == gsk_gl_shader_get_args_size (shader)), NULL); + g_return_val_if_fail ((children == NULL && n_children == 0) || + (children != NULL && n_children == gsk_gl_shader_get_n_required_textures (shader)), NULL); self = gsk_render_node_alloc (GSK_GL_SHADER_NODE); node = (GskRenderNode *) self; @@ -4581,9 +4585,6 @@ gsk_gl_shader_node_new (GskGLShader *shader, graphene_rect_init_from_rect (&node->bounds, bounds); self->shader = g_object_ref (shader); - uniforms_size = gsk_gl_shader_get_args_size (shader); - g_assert (g_bytes_get_size (args) == uniforms_size); - self->args = g_bytes_ref (args); self->n_children = n_children; |