[Bf-blender-cvs] [c3bd1c8414a] soc-2017-sculpting_improvements: Mini fixes. Catch some cornercases that shouldn't happen.

Sebastian Witt noreply at git.blender.org
Tue Aug 29 15:23:15 CEST 2017


Commit: c3bd1c8414a2425aab0f60af18275f109fcb2feb
Author: Sebastian Witt
Date:   Tue Aug 29 15:21:52 2017 +0200
Branches: soc-2017-sculpting_improvements
https://developer.blender.org/rBc3bd1c8414a2425aab0f60af18275f109fcb2feb

Mini fixes. Catch some cornercases that shouldn't happen.

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

M	source/blender/editors/sculpt_paint/sculpt.c

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

diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index 8f379790919..7669d2f725c 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -6285,6 +6285,10 @@ static void add_ss_cap(SilhouetteData *sil, SpineBranch *branch, Mesh *me, float
 		branch->fs_bs_offset = me->totedge;
 	}
 
+	if (branch->tot_hull_points <= 0) {
+		return;
+	}
+
 	/* calc and sort hullpoints for the three sides */
 	qsort (branch->hull_points, branch->tot_hull_points, sizeof(int), cmpfunc);
 
@@ -6315,7 +6319,7 @@ static void add_ss_cap(SilhouetteData *sil, SpineBranch *branch, Mesh *me, float
 	float cap_pos = (totlength - cap_length) * 0.5f;
 	float a, b, f;
 	int u_pos_i = 0;
-	int v_start = me->totvert;
+	int v_start;
 	int u_steps;
 	int e_start_tube[8];
 	int totl = 0, totr = 0;
@@ -6663,6 +6667,10 @@ static void add_ss_tinter(SilhouetteData *sil, Spine *spine, SpineBranch *branch
 		}
 	}
 
+	if (branch->tot_hull_points <= 0) {
+		return;
+	}
+
 	b_start[0] = 0;
 	filler = 0;
 	for (int i = 0; i < branch->tot_hull_points; i++) {
@@ -7205,15 +7213,17 @@ static void prep_float_shared_mem(float **mem, int *r_num, int *r_start, int len
 
 static void prep_int_shared_mem(int **mem, int *r_num, int *r_start, int len, const char *str)
 {
-	if (!mem) {
+	int *memory = *mem;
+	if (!memory) {
 		*r_start = 0;
-		*mem = MEM_callocN(sizeof(int) * len, str);
+		memory = MEM_callocN(sizeof(int) * len, str);
 		*r_num = len;
 	} else {
 		*r_start = *r_num;
 		*r_num = *r_num + len;
-		*mem = MEM_reallocN(*mem, sizeof(int) * (*r_num));
+		memory = MEM_reallocN(memory, sizeof(int) * (*r_num));
 	}
+	*mem = memory;
 }
 
 /*TODO: Maybe add real normal calc */



More information about the Bf-blender-cvs mailing list