[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56668] trunk/blender/source/blender/ makesrna/intern/rna_particle.c: Fix #35296: particles crash with long object name.

Brecht Van Lommel brechtvanlommel at pandora.be
Fri May 10 19:14:07 CEST 2013


Revision: 56668
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56668
Author:   blendix
Date:     2013-05-10 17:14:07 +0000 (Fri, 10 May 2013)
Log Message:
-----------
Fix #35296: particles crash with long object name.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_particle.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_particle.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_particle.c	2013-05-10 16:57:20 UTC (rev 56667)
+++ trunk/blender/source/blender/makesrna/intern/rna_particle.c	2013-05-10 17:14:07 UTC (rev 56668)
@@ -922,33 +922,7 @@
 			pt->flag &= ~PTARGET_CURRENT;
 	}
 }
-static int rna_ParticleTarget_name_length(PointerRNA *ptr)
-{
-	ParticleTarget *pt = ptr->data;
 
-	if (pt->flag & PTARGET_VALID) {
-		ParticleSystem *psys = NULL;
-
-		if (pt->ob)
-			psys = BLI_findlink(&pt->ob->particlesystem, pt->psys - 1);
-		else {
-			Object *ob = (Object *) ptr->id.data;
-			psys = BLI_findlink(&ob->particlesystem, pt->psys - 1);
-		}
-		
-		if (psys) {
-			if (pt->ob)
-				return strlen(pt->ob->id.name + 2) + 2 + strlen(psys->name);
-			else
-				return strlen(psys->name);
-		}
-		else
-			return 15;
-	}
-	else
-		return 15;
-}
-
 static void rna_ParticleTarget_name_get(PointerRNA *ptr, char *str)
 {
 	ParticleTarget *pt = ptr->data;
@@ -976,6 +950,15 @@
 		strcpy(str, "Invalid target!");
 }
 
+static int rna_ParticleTarget_name_length(PointerRNA *ptr)
+{
+	char tstr[MAX_ID_NAME + MAX_ID_NAME + 64];
+
+	rna_ParticleTarget_name_get(ptr, tstr);
+
+	return strlen(tstr);
+}
+
 static int particle_id_check(PointerRNA *ptr)
 {
 	ID *id = ptr->id.data;
@@ -1062,15 +1045,6 @@
 	}
 }
 
-static void rna_ParticleDupliWeight_name_get(PointerRNA *ptr, char *str);
-
-static int rna_ParticleDupliWeight_name_length(PointerRNA *ptr)
-{
-	char tstr[32];
-	rna_ParticleDupliWeight_name_get(ptr, tstr);
-	return strlen(tstr);
-}
-
 static void rna_ParticleDupliWeight_name_get(PointerRNA *ptr, char *str)
 {
 	ParticleDupliWeight *dw = ptr->data;
@@ -1081,6 +1055,15 @@
 		strcpy(str, "No object");
 }
 
+static int rna_ParticleDupliWeight_name_length(PointerRNA *ptr)
+{
+	char tstr[MAX_ID_NAME + 64];
+
+	rna_ParticleDupliWeight_name_get(ptr, tstr);
+
+	return strlen(tstr);
+}
+
 static EnumPropertyItem *rna_Particle_from_itemf(bContext *UNUSED(C), PointerRNA *UNUSED(ptr),
                                                  PropertyRNA *UNUSED(prop), int *UNUSED(free))
 {




More information about the Bf-blender-cvs mailing list