diff options
author | Daniel Zimmermann <netzimme@aol.com> | 2008-11-26 11:48:53 +0100 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2008-11-26 07:20:02 -0700 |
commit | c03af8e78069921d02cf4d9b70aabb82d5326764 (patch) | |
tree | aefa5a8e08ed5323ffbc584e476f3b14e18cb490 /src | |
parent | 8d95e66cf78921cd067c4bcf6a1053a7ec3a2ed4 (diff) |
fix possible memory leak in bezierPatchMeshMake
Diffstat (limited to 'src')
-rw-r--r-- | src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc b/src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc index 3dc16313ff..ac7ff84fc4 100644 --- a/src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc +++ b/src/glu/sgi/libnurbs/interface/bezierPatchMesh.cc @@ -103,23 +103,22 @@ bezierPatchMesh *bezierPatchMeshMake(int maptype, float umin, float umax, int us int dimension; int the_ustride; int the_vstride; - - bezierPatchMesh *ret = (bezierPatchMesh*) malloc(sizeof(bezierPatchMesh)); - assert(ret); - ret->bpatch = NULL; - ret->bpatch_normal = NULL; - ret->bpatch_color = NULL; - ret->bpatch_texcoord = NULL; - if(maptype == GL_MAP2_VERTEX_3) dimension = 3; else if (maptype==GL_MAP2_VERTEX_4) dimension = 4; else { fprintf(stderr, "error in inMap2f, maptype=%i is wrong, maptype,map is invalid\n", maptype); return NULL; } - + + bezierPatchMesh *ret = (bezierPatchMesh*) malloc(sizeof(bezierPatchMesh)); + assert(ret); + + ret->bpatch_normal = NULL; + ret->bpatch_color = NULL; + ret->bpatch_texcoord = NULL; ret->bpatch = bezierPatchMake(umin, vmin, umax, vmax, uorder, vorder, dimension); + /*copy the control points there*/ the_ustride = vorder * dimension; the_vstride = dimension; |