From a50d932150df5c70eebc3949b9252412854b6752 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Tue, 3 Oct 2017 02:42:45 +0200 Subject: [PATCH] gskslvalue: Add gsk_sl_value_to_string () Very useful to have in gdb. --- gsk/gskslvalue.c | 17 +++++++++++++++++ gsk/gskslvalueprivate.h | 1 + 2 files changed, 18 insertions(+) diff --git a/gsk/gskslvalue.c b/gsk/gskslvalue.c index 37bc0788d8..defac16021 100644 --- a/gsk/gskslvalue.c +++ b/gsk/gskslvalue.c @@ -20,6 +20,7 @@ #include "gskslvalueprivate.h" +#include "gskslprinterprivate.h" #include "gsksltypeprivate.h" #include "gskspvwriterprivate.h" @@ -279,6 +280,22 @@ gsk_sl_value_print (const GskSlValue *value, gsk_sl_type_print_value (value->type, printer, value->data); } +char * +gsk_sl_value_to_string (const GskSlValue *value) +{ + GskSlPrinter *printer; + char *s; + + printer = gsk_sl_printer_new (); + + gsk_sl_value_print (value, printer); + + s = gsk_sl_printer_write_to_string (printer); + gsk_sl_printer_unref (printer); + + return s; +} + GskSlType * gsk_sl_value_get_type (const GskSlValue *value) { diff --git a/gsk/gskslvalueprivate.h b/gsk/gskslvalueprivate.h index 9500de66e3..0ce263779d 100644 --- a/gsk/gskslvalueprivate.h +++ b/gsk/gskslvalueprivate.h @@ -42,6 +42,7 @@ void gsk_sl_value_componentwise (GskSlValue gpointer user_data); void gsk_sl_value_print (const GskSlValue *value, GskSlPrinter *printer); +char * gsk_sl_value_to_string (const GskSlValue *value); GskSlType * gsk_sl_value_get_type (const GskSlValue *value); gpointer gsk_sl_value_get_data (const GskSlValue *value);