summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2021-08-23 07:06:37 +0200
committerBenjamin Otte <otte@redhat.com>2021-08-30 06:02:16 +0200
commit119458f13e6110e470d794b038a9bfdad8b28dd7 (patch)
treeca638eb187ca06179745664d89eed29cd2f988f5
parent2863095f063c7ac153e6f30e0ad579566ab53648 (diff)
downloadgtk+-119458f13e6110e470d794b038a9bfdad8b28dd7.tar.gz
contentdeserializer: Fix some API awkwardness
Allow uninitialized GValues to be passed. Makes life easier for the inspector code I'm writing.
-rw-r--r--gdk/gdkcontentdeserializer.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gdk/gdkcontentdeserializer.c b/gdk/gdkcontentdeserializer.c
index f245b4c350..4959b5af4d 100644
--- a/gdk/gdkcontentdeserializer.c
+++ b/gdk/gdkcontentdeserializer.c
@@ -553,6 +553,8 @@ gdk_content_deserialize_async (GInputStream *stream,
Deserializer *deserializer;
g_return_if_fail (G_IS_INPUT_STREAM (stream));
+ g_return_if_fail (mime_type != NULL);
+ g_return_if_fail (G_TYPE_IS_VALUE_TYPE (type));
g_return_if_fail (cancellable == NULL || G_IS_CANCELLABLE (cancellable));
g_return_if_fail (callback != NULL);
@@ -591,7 +593,10 @@ gdk_content_deserialize_finish (GAsyncResult *result,
g_return_val_if_fail (GDK_IS_CONTENT_DESERIALIZER (result), FALSE);
g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
deserializer = GDK_CONTENT_DESERIALIZER (result);
- g_return_val_if_fail (G_VALUE_HOLDS (value, G_VALUE_TYPE (&deserializer->value)), FALSE);
+ if (G_VALUE_TYPE (value) == 0)
+ g_value_init (value, G_VALUE_TYPE (&deserializer->value));
+ else
+ g_return_val_if_fail (G_VALUE_HOLDS (value, G_VALUE_TYPE (&deserializer->value)), FALSE);
if (deserializer->error)
{