diff options
Diffstat (limited to 'gsk/gskrendernode.c')
-rw-r--r-- | gsk/gskrendernode.c | 44 |
1 files changed, 5 insertions, 39 deletions
diff --git a/gsk/gskrendernode.c b/gsk/gskrendernode.c index 343fd4b8ce..ed6fc527f1 100644 --- a/gsk/gskrendernode.c +++ b/gsk/gskrendernode.c @@ -42,6 +42,7 @@ #include "gskdebugprivate.h" #include "gskrendererprivate.h" +#include "gskrendernodeparserprivate.h" #include <graphene-gobject.h> @@ -328,19 +329,11 @@ gsk_render_node_diff (GskRenderNode *node1, GBytes * gsk_render_node_serialize (GskRenderNode *node) { - GVariant *node_variant, *variant; GBytes *result; + char *str; - node_variant = gsk_render_node_serialize_node (node); - - variant = g_variant_new ("(suuv)", - GSK_RENDER_NODE_SERIALIZATION_ID, - (guint32) GSK_RENDER_NODE_SERIALIZATION_VERSION, - (guint32) gsk_render_node_get_node_type (node), - node_variant); - - result = g_variant_get_data_as_bytes (variant); - g_variant_unref (variant); + str = gsk_render_node_serialize_to_string (node); + result = g_bytes_new_take (str, strlen (str)); return result; } @@ -397,36 +390,9 @@ GskRenderNode * gsk_render_node_deserialize (GBytes *bytes, GError **error) { - char *id_string; - guint32 version, node_type; - GVariant *variant, *node_variant; GskRenderNode *node = NULL; - variant = g_variant_new_from_bytes (G_VARIANT_TYPE ("(suuv)"), bytes, FALSE); - - g_variant_get (variant, "(suuv)", &id_string, &version, &node_type, &node_variant); - - if (!g_str_equal (id_string, GSK_RENDER_NODE_SERIALIZATION_ID)) - { - g_set_error (error, GSK_SERIALIZATION_ERROR, GSK_SERIALIZATION_UNSUPPORTED_FORMAT, - "Data not in GskRenderNode serialization format."); - goto out; - } - - if (version != GSK_RENDER_NODE_SERIALIZATION_VERSION) - { - g_set_error (error, GSK_SERIALIZATION_ERROR, GSK_SERIALIZATION_UNSUPPORTED_VERSION, - "Format version %u not supported.", version); - goto out; - } - - node = gsk_render_node_deserialize_node (node_type, node_variant, error); - -out: - g_free (id_string); - g_variant_unref (node_variant); - g_variant_unref (variant); + node = gsk_render_node_deserialize_from_string ((const char *)g_bytes_get_data (bytes, NULL)); return node; } - |