--- 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);