protocols/demo/purpledemoprotocolactions.c

changeset 43082
0248f784950d
parent 43006
b9cbf5cb2003
--- a/protocols/demo/purpledemoprotocolactions.c	Fri Nov 22 03:28:40 2024 -0600
+++ b/protocols/demo/purpledemoprotocolactions.c	Fri Nov 22 03:37:06 2024 -0600
@@ -290,6 +290,7 @@
 	GBytes *icon = NULL;
 	gconstpointer icon_data = NULL;
 	gsize icon_len = 0;
+	GError *error = NULL;
 
 	if(!g_variant_is_of_type(parameter, G_VARIANT_TYPE_STRING)) {
 		g_critical("Demo failure action parameter is of incorrect type %s",
@@ -400,15 +401,22 @@
 	g_object_bind_property(boolfield, "value", field, "sensitive", 0);
 	purple_request_group_add_field(group, field);
 
-	icon = g_resource_lookup_data(purple_demo_get_resource(),
-	                              "/im/pidgin/purple/demo/icons/scalable/apps/im-purple-demo.svg",
-	                              G_RESOURCE_LOOKUP_FLAGS_NONE, NULL);
-	icon_data = g_bytes_get_data(icon, &icon_len);
-	field = purple_request_field_image_new("image", _("An image"),
-	                                       icon_data, icon_len);
-	g_object_bind_property(boolfield, "value", field, "sensitive", 0);
-	purple_request_group_add_field(group, field);
-	g_bytes_unref(icon);
+	icon = g_resource_lookup_data(
+		purple_demo_get_resource(),
+	    "/im/pidgin/libpurple/protocols/demo/icons/scalable/apps/im-purple-demo.svg",
+	    G_RESOURCE_LOOKUP_FLAGS_NONE,
+		&error);
+	if(icon != NULL) {
+		icon_data = g_bytes_get_data(icon, &icon_len);
+		field = purple_request_field_image_new("image", _("An image"),
+		                                       icon_data, icon_len);
+		g_object_bind_property(boolfield, "value", field, "sensitive", 0);
+		purple_request_group_add_field(group, field);
+		g_bytes_unref(icon);
+	} else {
+		g_warning("Failed to load test image: %s", error->message);
+		g_clear_error(&error);
+	}
 
 	field = purple_request_field_account_new("account", _("An account"),
 	                                         account);

mercurial