fixed crash on missing profile (bug #512529).

2008-01-28  Sven Neumann  <sven@gimp.org>

	* plug-ins/common/lcms.c (lcms_dialog): fixed crash on missing
	profile (bug #512529).

svn path=/trunk/; revision=24733
This commit is contained in:
Sven Neumann 2008-01-28 17:27:50 +00:00 committed by Sven Neumann
parent 9c4ec2ec2f
commit ce0734c83a
2 changed files with 30 additions and 18 deletions

View file

@ -1,3 +1,8 @@
2008-01-28 Sven Neumann <sven@gimp.org>
* plug-ins/common/lcms.c (lcms_dialog): fixed crash on missing
profile (bug #512529).
2008-01-28 Sven Neumann <sven@gimp.org>
* plug-ins/common/lcms.c (lcms_load_profile)

View file

@ -1530,15 +1530,13 @@ lcms_dialog (GimpColorConfig *config,
&values->bpc);
}
run = (gimp_dialog_run (GIMP_DIALOG (dialog)) == GTK_RESPONSE_OK);
gtk_widget_hide (dialog);
if (run)
while ((run = gimp_dialog_run (GIMP_DIALOG (dialog))) == GTK_RESPONSE_OK)
{
gchar *filename = gimp_color_profile_combo_box_get_active (box);
cmsHPROFILE dest_profile;
gtk_widget_set_sensitive (dialog, FALSE);
if (filename)
{
dest_profile = lcms_load_profile (filename, NULL);
@ -1548,23 +1546,32 @@ lcms_dialog (GimpColorConfig *config,
dest_profile = cmsCreate_sRGBProfile ();
}
if (lcms_icc_profile_is_rgb (dest_profile))
if (dest_profile)
{
if (apply)
success = lcms_image_apply_profile (image,
src_profile, dest_profile,
filename,
values->intent, values->bpc);
if (lcms_icc_profile_is_rgb (dest_profile))
{
if (apply)
success = lcms_image_apply_profile (image,
src_profile, dest_profile,
filename,
values->intent,
values->bpc);
else
success = lcms_image_set_profile (image,
dest_profile, filename, TRUE);
}
else
success = lcms_image_set_profile (image,
dest_profile, filename, TRUE);
}
else
{
gimp_message (_("Destination profile is not for RGB color space."));
{
gimp_message (_("Destination profile is not for RGB color space."));
}
cmsCloseProfile (dest_profile);
}
cmsCloseProfile (dest_profile);
if (success)
break;
else
gtk_widget_set_sensitive (dialog, TRUE);
}
gtk_widget_destroy (dialog);