summaryrefslogtreecommitdiff
path: root/gsk/gskrendernodeparser.c
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2020-04-07 23:33:54 +0100
committerEmmanuele Bassi <ebassi@gnome.org>2020-04-08 15:40:15 +0100
commitd701a892815453dd38e19062761443eeda54a7c5 (patch)
treecc1d91b6e88ad16d97f9204817ad7b650c66150b /gsk/gskrendernodeparser.c
parent5e095cd208db14625a549a766f60c752c066da7b (diff)
downloadgtk+-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.c10
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;
}
}