gimp r26947 - in trunk: . app/pdb tools/pdbgen/pdb
- From: mitch svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r26947 - in trunk: . app/pdb tools/pdbgen/pdb
- Date: Mon, 15 Sep 2008 20:45:42 +0000 (UTC)
Author: mitch
Date: Mon Sep 15 20:45:42 2008
New Revision: 26947
URL: http://svn.gnome.org/viewvc/gimp?rev=26947&view=rev
Log:
2008-09-15 Michael Natterer <mitch gimp org>
Bug 552413 â Script triggers Gimp-Core-CRITICAL
* tools/pdbgen/pdb/image.pdb
* tools/pdbgen/pdb/layer.pdb: add some more checks that produce
proper PDB error messages when adding and removing layer masks
instead of having the code run into assertions in the called core
functions. Also add some more checks when removing layers,
channels or vectors.
* app/pdb/image-cmds.c
* app/pdb/layer-cmds.c: regenerated.
Modified:
trunk/ChangeLog
trunk/app/pdb/image-cmds.c
trunk/app/pdb/layer-cmds.c
trunk/tools/pdbgen/pdb/image.pdb
trunk/tools/pdbgen/pdb/layer.pdb
Modified: trunk/app/pdb/image-cmds.c
==============================================================================
--- trunk/app/pdb/image-cmds.c (original)
+++ trunk/app/pdb/image-cmds.c Mon Sep 15 20:45:42 2008
@@ -897,7 +897,10 @@
if (success)
{
- gimp_image_remove_layer (image, layer);
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error))
+ gimp_image_remove_layer (image, layer);
+ else
+ success = FALSE;
}
return gimp_procedure_get_return_values (procedure, success,
@@ -1084,7 +1087,10 @@
if (success)
{
- gimp_image_remove_channel (image, channel);
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (channel), error))
+ gimp_image_remove_channel (image, channel);
+ else
+ success = FALSE;
}
return gimp_procedure_get_return_values (procedure, success,
@@ -1223,7 +1229,10 @@
if (success)
{
- gimp_image_remove_vectors (image, vectors);
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (vectors), error))
+ gimp_image_remove_vectors (image, vectors);
+ else
+ success = FALSE;
}
return gimp_procedure_get_return_values (procedure, success,
@@ -1481,7 +1490,10 @@
if (success)
{
- if (! gimp_layer_add_mask (layer, mask, TRUE))
+ if (gimp_pdb_item_is_floating (GIMP_ITEM (mask), error) &&
+ ! gimp_layer_get_mask (layer))
+ success = (gimp_layer_add_mask (layer, mask, TRUE) == mask);
+ else
success = FALSE;
}
@@ -1508,7 +1520,11 @@
if (success)
{
- gimp_layer_apply_mask (layer, mode, TRUE);
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error) &&
+ gimp_layer_get_mask (layer))
+ gimp_layer_apply_mask (layer, mode, TRUE);
+ else
+ success = FALSE;
}
return gimp_procedure_get_return_values (procedure, success,
Modified: trunk/app/pdb/layer-cmds.c
==============================================================================
--- trunk/app/pdb/layer-cmds.c (original)
+++ trunk/app/pdb/layer-cmds.c Mon Sep 15 20:45:42 2008
@@ -550,8 +550,9 @@
if (success)
{
- if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error))
- gimp_layer_add_mask (layer, mask, TRUE);
+ if (gimp_pdb_item_is_floating (GIMP_ITEM (mask), error) &&
+ ! gimp_layer_get_mask (layer))
+ success = (gimp_layer_add_mask (layer, mask, TRUE) == mask);
else
success = FALSE;
}
@@ -577,7 +578,8 @@
if (success)
{
- if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error))
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error) &&
+ gimp_layer_get_mask (layer))
gimp_layer_apply_mask (layer, mode, TRUE);
else
success = FALSE;
Modified: trunk/tools/pdbgen/pdb/image.pdb
==============================================================================
--- trunk/tools/pdbgen/pdb/image.pdb (original)
+++ trunk/tools/pdbgen/pdb/image.pdb Mon Sep 15 20:45:42 2008
@@ -991,7 +991,10 @@
%invoke = (
code => <<'CODE'
{
- gimp_image_remove_layer (image, layer);
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error))
+ gimp_image_remove_layer (image, layer);
+ else
+ success = FALSE;
}
CODE
);
@@ -1012,7 +1015,10 @@
%invoke = (
code => <<'CODE'
{
- if (! gimp_layer_add_mask (layer, mask, TRUE))
+ if (gimp_pdb_item_is_floating (GIMP_ITEM (mask), error) &&
+ ! gimp_layer_get_mask (layer))
+ success = (gimp_layer_add_mask (layer, mask, TRUE) == mask);
+ else
success = FALSE;
}
CODE
@@ -1034,7 +1040,11 @@
%invoke = (
code => <<'CODE'
{
- gimp_layer_apply_mask (layer, mode, TRUE);
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error) &&
+ gimp_layer_get_mask (layer))
+ gimp_layer_apply_mask (layer, mode, TRUE);
+ else
+ success = FALSE;
}
CODE
);
@@ -1185,7 +1195,10 @@
%invoke = (
code => <<'CODE'
{
- gimp_image_remove_channel (image, channel);
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (channel), error))
+ gimp_image_remove_channel (image, channel);
+ else
+ success = FALSE;
}
CODE
);
@@ -1245,7 +1258,10 @@
%invoke = (
code => <<'CODE'
{
- gimp_image_remove_vectors (image, vectors);
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (vectors), error))
+ gimp_image_remove_vectors (image, vectors);
+ else
+ success = FALSE;
}
CODE
);
Modified: trunk/tools/pdbgen/pdb/layer.pdb
==============================================================================
--- trunk/tools/pdbgen/pdb/layer.pdb (original)
+++ trunk/tools/pdbgen/pdb/layer.pdb Mon Sep 15 20:45:42 2008
@@ -276,8 +276,9 @@
%invoke = (
code => <<'CODE'
{
- if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error))
- gimp_layer_add_mask (layer, mask, TRUE);
+ if (gimp_pdb_item_is_floating (GIMP_ITEM (mask), error) &&
+ ! gimp_layer_get_mask (layer))
+ success = (gimp_layer_add_mask (layer, mask, TRUE) == mask);
else
success = FALSE;
}
@@ -305,7 +306,8 @@
%invoke = (
code => <<'CODE'
{
- if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error))
+ if (gimp_pdb_item_is_attached (GIMP_ITEM (layer), error) &&
+ gimp_layer_get_mask (layer))
gimp_layer_apply_mask (layer, mode, TRUE);
else
success = FALSE;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]