[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60433] trunk/blender/source/blender: more fixes relating to [#36878], freestyle was only checking for NULL linestyles in some places.

Campbell Barton ideasman42 at gmail.com
Mon Sep 30 11:28:43 CEST 2013


Revision: 60433
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60433
Author:   campbellbarton
Date:     2013-09-30 09:28:43 +0000 (Mon, 30 Sep 2013)
Log Message:
-----------
more fixes relating to [#36878], freestyle was only checking for NULL linestyles in some places.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/freestyle.c
    trunk/blender/source/blender/blenkernel/intern/object.c
    trunk/blender/source/blender/editors/animation/anim_filter.c
    trunk/blender/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp

Modified: trunk/blender/source/blender/blenkernel/intern/freestyle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/freestyle.c	2013-09-30 09:04:17 UTC (rev 60432)
+++ trunk/blender/source/blender/blenkernel/intern/freestyle.c	2013-09-30 09:28:43 UTC (rev 60433)
@@ -107,7 +107,8 @@
 static void copy_lineset(FreestyleLineSet *new_lineset, FreestyleLineSet *lineset)
 {
 	new_lineset->linestyle = lineset->linestyle;
-	new_lineset->linestyle->id.us++;
+	if (lineset->linestyle)
+		new_lineset->linestyle->id.us++;
 	new_lineset->flags = lineset->flags;
 	new_lineset->selection = lineset->selection;
 	new_lineset->qi = lineset->qi;

Modified: trunk/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/object.c	2013-09-30 09:04:17 UTC (rev 60432)
+++ trunk/blender/source/blender/blenkernel/intern/object.c	2013-09-30 09:28:43 UTC (rev 60433)
@@ -643,7 +643,9 @@
 				for (lineset = (FreestyleLineSet *)srl->freestyleConfig.linesets.first;
 				     lineset; lineset = lineset->next)
 				{
-					BKE_unlink_linestyle_target_object(lineset->linestyle, ob);
+					if (lineset->linestyle) {
+						BKE_unlink_linestyle_target_object(lineset->linestyle, ob);
+					}
 				}
 			}
 		}

Modified: trunk/blender/source/blender/editors/animation/anim_filter.c
===================================================================
--- trunk/blender/source/blender/editors/animation/anim_filter.c	2013-09-30 09:04:17 UTC (rev 60432)
+++ trunk/blender/source/blender/editors/animation/anim_filter.c	2013-09-30 09:28:43 UTC (rev 60433)
@@ -1546,7 +1546,9 @@
 	
 	for (srl = sce->r.layers.first; srl; srl = srl->next) {
 		for (lineset = srl->freestyleConfig.linesets.first; lineset; lineset = lineset->next) {
-			lineset->linestyle->id.flag |= LIB_DOIT;
+			if (lineset->linestyle) {
+				lineset->linestyle->id.flag |= LIB_DOIT;
+			}
 		}
 	}
 
@@ -1562,8 +1564,11 @@
 			ListBase tmp_data = {NULL, NULL};
 			size_t tmp_items = 0;
 
-			if (!(linestyle->id.flag & LIB_DOIT))
+			if ((linestyle == NULL) ||
+			    !(linestyle->id.flag & LIB_DOIT))
+			{
 				continue;
+			}
 			linestyle->id.flag &= ~LIB_DOIT;
 			
 			/* add scene-level animation channels */

Modified: trunk/blender/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
===================================================================
--- trunk/blender/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp	2013-09-30 09:04:17 UTC (rev 60432)
+++ trunk/blender/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp	2013-09-30 09:28:43 UTC (rev 60433)
@@ -369,7 +369,7 @@
 			if (lineset->flags & FREESTYLE_LINESET_ENABLED) {
 				if (G.debug & G_DEBUG_FREESTYLE) {
 					cout << "  " << layer_count+1 << ": " << lineset->name << " - " <<
-					        lineset->linestyle->id.name + 2 << endl;
+					        (lineset->linestyle ? (lineset->linestyle->id.name + 2) : "<NULL>") << endl;
 				}
 				Text *text = create_lineset_handler(bmain, srl->name, lineset->name);
 				controller->InsertStyleModule(layer_count, lineset->name, text);
@@ -680,9 +680,11 @@
 	FreestyleLineSet *lineset = BKE_freestyle_lineset_get_active(config);
 
 	if (lineset) {
-		lineset->linestyle->id.us--;
+		if (lineset->linestyle)
+			lineset->linestyle->id.us--;
 		lineset->linestyle = lineset_buffer.linestyle;
-		lineset->linestyle->id.us++;
+		if (lineset->linestyle)
+			lineset->linestyle->id.us++;
 		lineset->flags = lineset_buffer.flags;
 		lineset->selection = lineset_buffer.selection;
 		lineset->qi = lineset_buffer.qi;
@@ -711,10 +713,10 @@
 	if (lineset) {
 		if (lineset->group) {
 			lineset->group->id.us--;
-			lineset->group = NULL;
 		}
-		lineset->linestyle->id.us--;
-		lineset->linestyle = NULL;
+		if (lineset->linestyle) {
+			lineset->linestyle->id.us--;
+		}
 		BLI_remlink(&config->linesets, lineset);
 		MEM_freeN(lineset);
 		BKE_freestyle_lineset_set_active_index(config, 0);




More information about the Bf-blender-cvs mailing list