diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2020-04-07 23:33:54 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2020-04-08 15:40:15 +0100 |
commit | d701a892815453dd38e19062761443eeda54a7c5 (patch) | |
tree | cc1d91b6e88ad16d97f9204817ad7b650c66150b /gsk/gskrendernodeparser.c | |
parent | 5e095cd208db14625a549a766f60c752c066da7b (diff) | |
download | gtk+-d701a892815453dd38e19062761443eeda54a7c5.tar.gz |
Turn GskRenderNode into a derivable type
Language bindings—especially ones based on introspection—cannot deal
with custom type hiearchies. Luckily for us, GType has a derivable type
with low overhead: GTypeInstance.
By turning GskRenderNode into a GTypeInstance, and creating derived
types for each class of node, we can provide an introspectable API to
our non-C API consumers, with no functional change to the C API itself.
Diffstat (limited to 'gsk/gskrendernodeparser.c')
-rw-r--r-- | gsk/gskrendernodeparser.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gsk/gskrendernodeparser.c b/gsk/gskrendernodeparser.c index 02959bce93..fcacb8b888 100644 --- a/gsk/gskrendernodeparser.c +++ b/gsk/gskrendernodeparser.c @@ -1973,9 +1973,9 @@ render_node_print (Printer *p, case GSK_REPEATING_LINEAR_GRADIENT_NODE: case GSK_LINEAR_GRADIENT_NODE: { - const guint n_stops = gsk_linear_gradient_node_get_n_color_stops (node); - const GskColorStop *stops = gsk_linear_gradient_node_peek_color_stops (node); - int i; + const gsize n_stops = gsk_linear_gradient_node_get_n_color_stops (node); + const GskColorStop *stops = gsk_linear_gradient_node_peek_color_stops (node, NULL); + gsize i; if (gsk_render_node_get_node_type (node) == GSK_REPEATING_LINEAR_GRADIENT_NODE) start_node (p, "repeating-linear-gradient"); @@ -2229,7 +2229,7 @@ render_node_print (Printer *p, case GSK_TEXT_NODE: { const guint n_glyphs = gsk_text_node_get_num_glyphs (node); - const PangoGlyphInfo *glyphs = gsk_text_node_peek_glyphs (node); + const PangoGlyphInfo *glyphs = gsk_text_node_peek_glyphs (node, NULL); const graphene_point_t *offset = gsk_text_node_get_offset (node); const GdkRGBA *color = gsk_text_node_peek_color (node); PangoFont *font = gsk_text_node_peek_font (node); @@ -2449,7 +2449,7 @@ render_node_print (Printer *p, break; default: - g_error ("Unhandled node: %s", node->node_class->type_name); + g_error ("Unhandled node: %s", g_type_name_from_instance ((GTypeInstance *) node)); break; } } |