[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28252] trunk/blender/source: various minor fixes

Campbell Barton ideasman42 at gmail.com
Sun Apr 18 11:12:19 CEST 2010


Revision: 28252
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28252
Author:   campbellbarton
Date:     2010-04-18 11:12:18 +0200 (Sun, 18 Apr 2010)

Log Message:
-----------
various minor fixes
- collada export would run MEM_freeN on an un-initialized pointer in some cases.
- makesrna was missing a call to close a file.
- text cursor update function was missing a NULL check for st->text.
- possible (unlikely) un-initialized return value for bge python lamp.type, set error instead.
- possible (unlikely) missing NULL terminator with strncpy for ffmpeg.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
    trunk/blender/source/blender/editors/space_text/text_draw.c
    trunk/blender/source/blender/makesrna/intern/makesrna.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/gameengine/Ketsji/KX_Light.cpp
    trunk/blender/source/gameengine/Ketsji/KX_WorldIpoController.cpp

Modified: trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c	2010-04-18 08:54:42 UTC (rev 28251)
+++ trunk/blender/source/blender/blenkernel/intern/writeffmpeg.c	2010-04-18 09:12:18 UTC (rev 28252)
@@ -382,7 +382,7 @@
 
 	fprintf(stderr, "FFMPEG expert option: %s: ", prop->name);
 
-	strncpy(name, prop->name, 128);
+	BLI_strncpy(name, prop->name, sizeof(name));
 
 	param = strchr(name, ':');
 
@@ -1078,7 +1078,7 @@
 	
 	avcodec_get_context_defaults(&c);
 
-	strncpy(name_, str, 128);
+	strncpy(name_, str, sizeof(name_));
 
 	name = name_;
 	while (*name == ' ') name++;

Modified: trunk/blender/source/blender/editors/space_text/text_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_text/text_draw.c	2010-04-18 08:54:42 UTC (rev 28251)
+++ trunk/blender/source/blender/editors/space_text/text_draw.c	2010-04-18 09:12:18 UTC (rev 28252)
@@ -1318,20 +1318,20 @@
 {
 	ScrArea *sa= CTX_wm_area(C);
 	SpaceText *st= CTX_wm_space_text(C);
-	Text *text= st->text;
+	Text *text;
 	ARegion *ar;
 	int i, x, winx= 0;
 
-	if(!st) return;
+	if(!st || !st->text || st->text->curl) return;
 
+	text= st->text;
+
 	for(ar=sa->regionbase.first; ar; ar= ar->next)
 		if(ar->regiontype==RGN_TYPE_WINDOW)
 			winx= ar->winx;
 	
 	winx -= TXT_SCROLL_WIDTH;
 
-	if(!text || !text->curl) return;
-
 	text_update_character_width(st);
 
 	i= txt_get_span(text->lines.first, text->sell);

Modified: trunk/blender/source/blender/makesrna/intern/makesrna.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/makesrna.c	2010-04-18 08:54:42 UTC (rev 28251)
+++ trunk/blender/source/blender/makesrna/intern/makesrna.c	2010-04-18 09:12:18 UTC (rev 28252)
@@ -82,6 +82,7 @@
 	if(fp_new==NULL) {
 		/* shouldn't happen, just to be safe */
 		fprintf(stderr, "%s:%d, open error: \"%s\"\n", __FILE__, __LINE__, tmpfile);
+		fclose(fp_org);
 		return -1;
 	}
 

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2010-04-18 08:54:42 UTC (rev 28251)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2010-04-18 09:12:18 UTC (rev 28252)
@@ -1871,19 +1871,15 @@
 #include "../../collada/collada.h"
 
 static int wm_collada_export_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
-	char *path;
-	/* RNA_string_set(op->ptr, "path", "/tmp/test.dae"); */
-	
+{	
 	if(!RNA_property_is_set(op->ptr, "path")) {
-		path = BLI_replacestr(G.sce, ".blend", ".dae");
+		char *path = BLI_replacestr(G.sce, ".blend", ".dae");
 		RNA_string_set(op->ptr, "path", path);
+		MEM_freeN(path);
 	}
-	
+
 	WM_event_add_fileselect(C, op);
-	
-	if (path) MEM_freeN(path);
-	
+
 	return OPERATOR_RUNNING_MODAL;
 }
 

Modified: trunk/blender/source/gameengine/Ketsji/KX_Light.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_Light.cpp	2010-04-18 08:54:42 UTC (rev 28251)
+++ trunk/blender/source/gameengine/Ketsji/KX_Light.cpp	2010-04-18 09:12:18 UTC (rev 28252)
@@ -352,6 +352,11 @@
 	} else if (!strcmp(type, "NORMAL")) {
 		retvalue = PyLong_FromSsize_t(RAS_LightObject::LIGHT_NORMAL);
 	}
+    else {
+        /* should never happen */
+        PyErr_SetString(PyExc_TypeError, "light.type: internal error, invalid light type");
+        retvalue = NULL;
+    }
 
 	return retvalue;
 }

Modified: trunk/blender/source/gameengine/Ketsji/KX_WorldIpoController.cpp
===================================================================
--- trunk/blender/source/gameengine/Ketsji/KX_WorldIpoController.cpp	2010-04-18 08:54:42 UTC (rev 28251)
+++ trunk/blender/source/gameengine/Ketsji/KX_WorldIpoController.cpp	2010-04-18 09:12:18 UTC (rev 28252)
@@ -48,7 +48,8 @@
 		for (i = m_interpolators.begin(); !(i == m_interpolators.end()); ++i) {
 			(*i)->Execute(m_ipotime);//currentTime);
 		}
-		
+
+		/* TODO, this will crash! */
 		KX_WorldInfo *world = NULL;
 
 		if (m_modify_mist_start) {





More information about the Bf-blender-cvs mailing list