[Bf-blender-cvs] [1b6cf7a] master: Cleanup: get rid of BKE_text_unlink(), replace by usage of generic BKE_libblock_... API.

Bastien Montagne noreply at git.blender.org
Sat Jun 25 18:36:51 CEST 2016


Commit: 1b6cf7a99bef577ce56502681f145474d4729acb
Author: Bastien Montagne
Date:   Sat Jun 25 18:12:23 2016 +0200
Branches: master
https://developer.blender.org/rB1b6cf7a99bef577ce56502681f145474d4729acb

Cleanup: get rid of BKE_text_unlink(), replace by usage of generic BKE_libblock_... API.

===================================================================

M	source/blender/blenkernel/BKE_text.h
M	source/blender/blenkernel/intern/text.c
M	source/blender/editors/space_text/text_ops.c
M	source/blender/freestyle/intern/system/PythonInterpreter.h

===================================================================

diff --git a/source/blender/blenkernel/BKE_text.h b/source/blender/blenkernel/BKE_text.h
index b14593f..858feee 100644
--- a/source/blender/blenkernel/BKE_text.h
+++ b/source/blender/blenkernel/BKE_text.h
@@ -53,7 +53,6 @@ struct Text    *BKE_text_load_ex(struct Main *bmain, const char *file, const cha
                                  const bool is_internal);
 struct Text    *BKE_text_load	(struct Main *bmain, const char *file, const char *relpath);
 struct Text    *BKE_text_copy		(struct Main *bmain, struct Text *ta);
-void			BKE_text_unlink		(struct Main *bmain, struct Text *text);
 void			BKE_text_clear      (struct Text *text);
 void			BKE_text_write      (struct Text *text, const char *str);
 int             BKE_text_file_modified_check(struct Text *text);
diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c
index 594f9df..fdc2edb 100644
--- a/source/blender/blenkernel/intern/text.c
+++ b/source/blender/blenkernel/intern/text.c
@@ -498,191 +498,6 @@ Text *BKE_text_copy(Main *bmain, Text *ta)
 	return tan;
 }
 
-void BKE_text_unlink(Main *bmain, Text *text)
-{
-	bScreen *scr;
-	ScrArea *area;
-	SpaceLink *sl;
-	Object *ob;
-	bController *cont;
-	bActuator *act;
-	bConstraint *con;
-	bNodeTree *ntree;
-	bNode *node;
-	Material *mat;
-	Lamp *la;
-	Tex *te;
-	World *wo;
-	FreestyleLineStyle *linestyle;
-	Scene *sce;
-	SceneRenderLayer *srl;
-	FreestyleModuleConfig *module;
-	bool update;
-
-	for (ob = bmain->object.first; ob; ob = ob->id.next) {
-		/* game controllers */
-		for (cont = ob->controllers.first; cont; cont = cont->next) {
-			if (cont->type == CONT_PYTHON) {
-				bPythonCont *pc;
-				
-				pc = cont->data;
-				if (pc->text == text) pc->text = NULL;
-			}
-		}
-		/* game actuators */
-		for (act = ob->actuators.first; act; act = act->next) {
-			if (act->type == ACT_2DFILTER) {
-				bTwoDFilterActuator *tfa;
-				
-				tfa = act->data;
-				if (tfa->text == text) tfa->text = NULL;
-			}
-		}
-
-		/* pyconstraints */
-		update = 0;
-
-		if (ob->type == OB_ARMATURE && ob->pose) {
-			bPoseChannel *pchan;
-			for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
-				for (con = pchan->constraints.first; con; con = con->next) {
-					if (con->type == CONSTRAINT_TYPE_PYTHON) {
-						bPythonConstraint *data = con->data;
-						if (data->text == text) data->text = NULL;
-						update = 1;
-						
-					}
-				}
-			}
-		}
-
-		for (con = ob->constraints.first; con; con = con->next) {
-			if (con->type == CONSTRAINT_TYPE_PYTHON) {
-				bPythonConstraint *data = con->data;
-				if (data->text == text) data->text = NULL;
-				update = 1;
-			}
-		}
-		
-		if (update)
-			DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
-	}
-	
-	/* nodes */
-	for (la = bmain->lamp.first; la; la = la->id.next) {
-		ntree = la->nodetree;
-		if (!ntree)
-			continue;
-		for (node = ntree->nodes.first; node; node = node->next) {
-			if (node->type == NODE_FRAME) {
-				if ((Text *)node->id == text) {
-					node->id = NULL;
-				}
-			}
-		}
-	}
-
-	for (linestyle = bmain->linestyle.first; linestyle; linestyle = linestyle->id.next) {
-		ntree = linestyle->nodetree;
-		if (!ntree)
-			continue;
-		for (node = ntree->nodes.first; node; node = node->next) {
-			if (node->type == NODE_FRAME) {
-				if ((Text *)node->id == text) {
-					node->id = NULL;
-				}
-			}
-		}
-	}
-
-	for (mat = bmain->mat.first; mat; mat = mat->id.next) {
-		ntree = mat->nodetree;
-		if (!ntree)
-			continue;
-		for (node = ntree->nodes.first; node; node = node->next) {
-			if (ELEM(node->type, SH_NODE_SCRIPT, NODE_FRAME)) {
-				if ((Text *)node->id == text) {
-					node->id = NULL;
-				}
-			}
-		}
-	}
-
-	for (te = bmain->tex.first; te; te = te->id.next) {
-		ntree = te->nodetree;
-		if (!ntree)
-			continue;
-		for (node = ntree->nodes.first; node; node = node->next) {
-			if (node->type == NODE_FRAME) {
-				if ((Text *)node->id == text) {
-					node->id = NULL;
-				}
-			}
-		}
-	}
-
-	for (wo = bmain->world.first; wo; wo = wo->id.next) {
-		ntree = wo->nodetree;
-		if (!ntree)
-			continue;
-		for (node = ntree->nodes.first; node; node = node->next) {
-			if (node->type == NODE_FRAME) {
-				if ((Text *)node->id == text) {
-					node->id = NULL;
-				}
-			}
-		}
-	}
-
-	for (sce = bmain->scene.first; sce; sce = sce->id.next) {
-		ntree = sce->nodetree;
-		if (!ntree)
-			continue;
-		for (node = ntree->nodes.first; node; node = node->next) {
-			if (node->type == NODE_FRAME) {
-				Text *ntext = (Text *)node->id;
-				if (ntext == text) node->id = NULL;
-			}
-		}
-
-		/* Freestyle (while looping over the scene) */
-		for (srl = sce->r.layers.first; srl; srl = srl->next) {
-			for (module = srl->freestyleConfig.modules.first; module; module = module->next) {
-				if (module->script == text)
-					module->script = NULL;
-			}
-		}
-	}
-
-	for (ntree = bmain->nodetree.first; ntree; ntree = ntree->id.next) {
-		for (node = ntree->nodes.first; node; node = node->next) {
-			if (ELEM(node->type, SH_NODE_SCRIPT, NODE_FRAME)) {
-				if ((Text *)node->id == text) {
-					node->id = NULL;
-				}
-			}
-		}
-	}
-	
-	/* text space */
-	for (scr = bmain->screen.first; scr; scr = scr->id.next) {
-		for (area = scr->areabase.first; area; area = area->next) {
-			for (sl = area->spacedata.first; sl; sl = sl->next) {
-				if (sl->spacetype == SPACE_TEXT) {
-					SpaceText *st = (SpaceText *) sl;
-
-					if (st->text == text) {
-						st->text = NULL;
-						st->top = 0;
-					}
-				}
-			}
-		}
-	}
-
-	text->id.us = 0;
-}
-
 void BKE_text_clear(Text *text) /* called directly from rna */
 {
 	int oldstate;
diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c
index d404e7a..94ed280 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -384,8 +384,7 @@ static int text_unlink_exec(bContext *C, wmOperator *UNUSED(op))
 		}
 	}
 
-	BKE_text_unlink(bmain, text);
-	BKE_libblock_free(bmain, text);
+	BKE_libblock_delete(bmain, text);
 
 	text_drawcache_tag_update(st, 1);
 	WM_event_add_notifier(C, NC_TEXT | NA_REMOVED, NULL);
diff --git a/source/blender/freestyle/intern/system/PythonInterpreter.h b/source/blender/freestyle/intern/system/PythonInterpreter.h
index 5403ec6..0e08af1 100644
--- a/source/blender/freestyle/intern/system/PythonInterpreter.h
+++ b/source/blender/freestyle/intern/system/PythonInterpreter.h
@@ -84,8 +84,7 @@ public:
 		Text *text = BKE_text_load(&_freestyle_bmain, fn, G.main->name);
 		if (text) {
 			ok = BPY_execute_text(_context, text, reports, false);
-			BKE_text_unlink(&_freestyle_bmain, text);
-			BKE_libblock_free(&_freestyle_bmain, text);
+			BKE_libblock_delete(&_freestyle_bmain, text);
 		}
 		else {
 			BKE_reportf(reports, RPT_ERROR, "Cannot open file: %s", fn);




More information about the Bf-blender-cvs mailing list