From a3c4954710361ec94552c0999b4426e26a58f0fc Mon Sep 17 00:00:00 2001 From: scott Date: Wed, 28 Jan 1998 18:20:32 +0000 Subject: [PATCH] Added safety code for add channel so you can't add a channel twice or to the wrong image. (Same thing as I did for layers a few months ago.) --sg --- ChangeLog | 6 ++++++ app/gimage.c | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/ChangeLog b/ChangeLog index c721451bb9..135657a98e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Jan 28 13:17:06 1998 Scott Goehring + + * app/gimage.c (gimage_add_channel): Added safety code for add + channel so you can't add a channel twice or to the wrong image. + (Same thing as I did for layers a few months ago.) + Tue Jan 27 22:31:00 PST 1998 Raph Levien * app/gimage_mask.c: hacked around fractional pixel errors in diff --git a/app/gimage.c b/app/gimage.c index 23c6addfc9..d45d502ddf 100644 --- a/app/gimage.c +++ b/app/gimage.c @@ -2401,6 +2401,27 @@ gimage_add_channel (GImage *gimage, Channel *channel, int position) { ChannelUndo * cu; + if (GIMP_DRAWABLE(channel)->gimage_ID != 0 && + GIMP_DRAWABLE(channel)->gimage_ID != gimage->ID) + { + warning("gimage_add_channel: attempt to add channel to wrong image"); + return NULL; + } + + { + link_ptr cc = gimage->channels; + while (cc) + { + if (cc->data == channel) + { + warning("gimage_add_channel: trying to add channel to image twice"); + return NULL; + } + cc = next_item(cc); + } + } + + /* Prepare a channel undo and push it */ cu = (ChannelUndo *) g_malloc (sizeof (ChannelUndo)); cu->channel = channel;