[gtk/matthiasc/glshader-node] gsk: Improve gsk_gl_shader_node_new preconditions



commit 32975100407981df8148095740751ae53d996443
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Sep 28 13:50:15 2020 -0400

    gsk: Improve gsk_gl_shader_node_new preconditions
    
    Check all that we can.

 gsk/gskrendernodeimpl.c | 9 +++++----
 1 file 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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]