GtkCssImage * _gtk_css_image_new_parse (GtkCssParser *parser) { GtkCssImageClass *klass; GtkCssImage *image; GType image_type; g_return_val_if_fail (parser != NULL, NULL); image_type = gtk_css_image_get_parser_type (parser); if (image_type == G_TYPE_INVALID) { _gtk_css_parser_error (parser, "Not a valid image"); return NULL; } image = g_object_new (image_type, NULL); klass = GTK_CSS_IMAGE_GET_CLASS (image); if (!klass->parse (image, parser)) { g_object_unref (image); return NULL; } return image; }