diff options
author | Campbell Barton <ideasman42@gmail.com> | 2015-02-23 00:33:32 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2015-02-23 00:34:20 +0300 |
commit | 765b842f9520843183bf0a3cdcd071f152bbbf9e (patch) | |
tree | 5a8947f06c47c6a0023b2cc4b93d8af1af494fdb /source/blender/blenkernel/intern/CCGSubSurf.c | |
parent | 0f1ffd4792acb0d93f12bad593ae8ee0054dcc5b (diff) |
Subsurf: missing NULL checks on free
Diffstat (limited to 'source/blender/blenkernel/intern/CCGSubSurf.c')
-rw-r--r-- | source/blender/blenkernel/intern/CCGSubSurf.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c index 651979cd5cd..cadca6b2623 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.c +++ b/source/blender/blenkernel/intern/CCGSubSurf.c @@ -579,8 +579,14 @@ static float *_vert_getNo(CCGVert *v, int lvl, int dataSize, int normalDataOffse static void _vert_free(CCGVert *v, CCGSubSurf *ss) { - CCGSUBSURF_free(ss, v->edges); - CCGSUBSURF_free(ss, v->faces); + if (v->edges) { + CCGSUBSURF_free(ss, v->edges); + } + + if (v->faces) { + CCGSUBSURF_free(ss, v->faces); + } + CCGSUBSURF_free(ss, v); } @@ -669,7 +675,10 @@ static void *_edge_getCoVert(CCGEdge *e, CCGVert *v, int lvl, int x, int dataSiz static void _edge_free(CCGEdge *e, CCGSubSurf *ss) { - CCGSUBSURF_free(ss, e->faces); + if (e->faces) { + CCGSUBSURF_free(ss, e->faces); + } + CCGSUBSURF_free(ss, e); } static void _edge_unlinkMarkAndFree(CCGEdge *e, CCGSubSurf *ss) |