[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19110] branches/blender2.5/blender/source /blender/blenkernel/intern: 2.5
Ton Roosendaal
ton at blender.org
Wed Feb 25 10:54:43 CET 2009
Revision: 19110
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19110
Author: ton
Date: 2009-02-25 10:54:41 +0100 (Wed, 25 Feb 2009)
Log Message:
-----------
2.5
Bugfix in compositor: code that duplicated the nodetree and merged
viewer images back lacked handling the case when a viewer was not
set active yet.
This fixes eternal loops in compositor after removing Viewers.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenkernel/intern/image.c
branches/blender2.5/blender/source/blender/blenkernel/intern/node.c
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/image.c 2009-02-25 09:36:25 UTC (rev 19109)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/image.c 2009-02-25 09:54:41 UTC (rev 19110)
@@ -351,12 +351,16 @@
{
ImBuf *ibuf;
- while((ibuf= source->ibufs.first)) {
- BLI_remlink(&source->ibufs, ibuf);
- image_assign_ibuf(dest, ibuf, IMA_INDEX_PASS(ibuf->index), IMA_INDEX_FRAME(ibuf->index));
+ /* sanity check */
+ if(dest && source && dest!=source) {
+
+ while((ibuf= source->ibufs.first)) {
+ BLI_remlink(&source->ibufs, ibuf);
+ image_assign_ibuf(dest, ibuf, IMA_INDEX_PASS(ibuf->index), IMA_INDEX_FRAME(ibuf->index));
+ }
+
+ free_libblock(&G.main->image, source);
}
-
- free_libblock(&G.main->image, source);
}
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/node.c 2009-02-25 09:36:25 UTC (rev 19109)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/node.c 2009-02-25 09:54:41 UTC (rev 19110)
@@ -2490,8 +2490,11 @@
node->need_exec= 0;
if(ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
- if(node->id && (node->flag & NODE_DO_OUTPUT)) {
- node->new_node->id= (ID *)BKE_image_copy((Image *)node->id);
+ if(node->id) {
+ if(node->flag & NODE_DO_OUTPUT)
+ node->new_node->id= (ID *)BKE_image_copy((Image *)node->id);
+ else
+ node->new_node->id= NULL;
}
}
@@ -2565,6 +2568,7 @@
if(ELEM(lnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
if(lnode->id && (lnode->flag & NODE_DO_OUTPUT)) {
+ /* image_merge does sanity check for pointers */
BKE_image_merge((Image *)lnode->new_node->id, (Image *)lnode->id);
}
}
More information about the Bf-blender-cvs
mailing list