Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2013-11-19 04:18:00 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-11-19 04:20:57 +0400
commit4da651c8f0ffc3b0cc21752cbcaed5e10f228a86 (patch)
treeedc909ccfb6947d8afa3ad1f144d10e797e8eb20
parent965c1357c4ef78142dee73b09e52f5d86a5e840f (diff)
Fix T37472: crash when packing UV islands.
-rw-r--r--source/blender/blenlib/intern/convexhull2d.c4
-rw-r--r--source/blender/python/mathutils/mathutils_geometry.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/blenlib/intern/convexhull2d.c b/source/blender/blenlib/intern/convexhull2d.c
index 5669a302bd8..2c29ef042a1 100644
--- a/source/blender/blenlib/intern/convexhull2d.c
+++ b/source/blender/blenlib/intern/convexhull2d.c
@@ -191,6 +191,8 @@ static int pointref_cmp_y(const void *a_, const void *b_)
* \param points An array of 2D points.
* \param n The number of points in points.
* \param r_points An array of the convex hull vertex indices (max is n).
+ * _must_ be allocated as ``n * 2`` becauise of how its used internally,
+ * even though the final result will be no more then \a n in size.
* \returns the number of points in r_points.
*/
int BLI_convexhull_2d(const float (*points)[2], const int n, int r_points[])
@@ -310,7 +312,7 @@ float BLI_convexhull_aabb_fit_points_2d(const float (*points)[2], unsigned int n
float angle;
- index_map = MEM_mallocN(sizeof(*index_map) * n, __func__);
+ index_map = MEM_mallocN(sizeof(*index_map) * n * 2, __func__);
tot = BLI_convexhull_2d((const float (*)[2])points, (int)n, index_map);
diff --git a/source/blender/python/mathutils/mathutils_geometry.c b/source/blender/python/mathutils/mathutils_geometry.c
index 8b5b74c480a..584861d4c49 100644
--- a/source/blender/python/mathutils/mathutils_geometry.c
+++ b/source/blender/python/mathutils/mathutils_geometry.c
@@ -1563,7 +1563,7 @@ static PyObject *M_Geometry_convex_hull_2d(PyObject *UNUSED(self), PyObject *poi
int *index_map;
Py_ssize_t len_ret, i;
- index_map = MEM_mallocN(sizeof(*index_map) * len, __func__);
+ index_map = MEM_mallocN(sizeof(*index_map) * len * 2, __func__);
/* Non Python function */
len_ret = BLI_convexhull_2d((const float (*)[2])points, len, index_map);