From c8670f45b99619b0c4c3e1ad7d7028ad3aadad0e Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Tue, 22 Sep 2015 21:10:23 +0500 Subject: OpenSubdiv: Fix crash with empty mesh Reported by newbz in IRC, thanks! --- source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c b/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c index 006cebf4573..39669fd76d7 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c +++ b/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c @@ -314,9 +314,12 @@ int ccgSubSurf_getNumGLMeshBaseFaces(CCGSubSurf *ss) if (ss->osd_topology_refiner != NULL) { topology_refiner = ss->osd_topology_refiner; } - else { + else if (ss->osd_mesh != NULL) { topology_refiner = openSubdiv_getGLMeshTopologyRefiner(ss->osd_mesh); } + else { + return 0; + } return openSubdiv_topologyRefinerGetNumFaces(topology_refiner); } @@ -327,9 +330,12 @@ int ccgSubSurf_getNumGLMeshBaseFaceVerts(CCGSubSurf *ss, int face) if (ss->osd_topology_refiner != NULL) { topology_refiner = ss->osd_topology_refiner; } - else { + else if (ss->osd_mesh != NULL) { topology_refiner = openSubdiv_getGLMeshTopologyRefiner(ss->osd_mesh); } + else { + return 0; + } return openSubdiv_topologyRefinerGetNumFaceVerts(topology_refiner, face); } -- cgit v1.2.3