|
From: <kin...@us...> - 2004-02-10 05:46:08
|
Update of /cvsroot/teem/teem/src/limn In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26307 Modified Files: io.c Log Message: plugging memory leak Index: io.c =================================================================== RCS file: /cvsroot/teem/teem/src/limn/io.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** io.c 10 Feb 2004 04:42:18 -0000 1.11 --- io.c 10 Feb 2004 05:42:48 -0000 1.12 *************** *** 144,148 **** int *vertBase; ! airArray *vertBaseArr; if (!( obj && file )) { --- 144,148 ---- int *vertBase; ! airArray *vertBaseArr, *mop; if (!( obj && file )) { *************** *** 153,156 **** --- 153,158 ---- vertBaseArr = airArrayNew((void**)&vertBase, NULL, sizeof(int), 128); + mop = airMopNew(); + airMopAdd(mop, vertBaseArr, (airMopper)airArrayNuke, airMopAlways); got = 0; lineCount = 0; *************** *** 158,162 **** if (!airOneLine(file, line, AIR_STRLEN_LARGE)) { sprintf(err, "%s: hit EOF before getting #vert #face #edge line", me); ! biffAdd(LIMN, err); return 1; } lineCount++; --- 160,164 ---- if (!airOneLine(file, line, AIR_STRLEN_LARGE)) { sprintf(err, "%s: hit EOF before getting #vert #face #edge line", me); ! biffAdd(LIMN, err); airMopError(mop); return 1; } lineCount++; *************** *** 180,184 **** sprintf(err, "%s: (near line %d) hit EOF trying to read vert %d (of %d)", me, lineCount, vertGot, vertNum); ! biffAdd(LIMN, err); return 1; } if (1 == sscanf(line, "### LIMN BEGIN PART %d", &idxTmp)) { --- 182,186 ---- sprintf(err, "%s: (near line %d) hit EOF trying to read vert %d (of %d)", me, lineCount, vertGot, vertNum); ! biffAdd(LIMN, err); airMopError(mop); return 1; } if (1 == sscanf(line, "### LIMN BEGIN PART %d", &idxTmp)) { *************** *** 188,192 **** sprintf(err, "%s: got signal to start part %d, not %d", me, idxTmp, partIdx); ! biffAdd(LIMN, err); return 1; } airArrayIncrLen(vertBaseArr, 1); --- 190,194 ---- sprintf(err, "%s: got signal to start part %d, not %d", me, idxTmp, partIdx); ! biffAdd(LIMN, err); airMopError(mop); return 1; } airArrayIncrLen(vertBaseArr, 1); *************** *** 199,203 **** "for vert %d (of %d)", me, line, vertGot, vertNum); ! biffAdd(LIMN, err); return 1; } if (6 == airParseStrD(vert, line, AIR_WHITESPACE, 6)) { --- 201,205 ---- "for vert %d (of %d)", me, line, vertGot, vertNum); ! biffAdd(LIMN, err); airMopError(mop); return 1; } if (6 == airParseStrD(vert, line, AIR_WHITESPACE, 6)) { *************** *** 232,236 **** sprintf(err, "%s: (near line %d) hit EOF trying to read face %d (of %d)", me, lineCount, faceGot, faceNum); ! biffAdd(LIMN, err); return 1; } if (1 == sscanf(line, "### LIMN BEGIN PART %d", &idxTmp)) { --- 234,238 ---- sprintf(err, "%s: (near line %d) hit EOF trying to read face %d (of %d)", me, lineCount, faceGot, faceNum); ! biffAdd(LIMN, err); airMopError(mop); return 1; } if (1 == sscanf(line, "### LIMN BEGIN PART %d", &idxTmp)) { *************** *** 241,245 **** "part %d, not %d", me, lineCount, idxTmp, partIdx); ! biffAdd(LIMN, err); return 1; } } --- 243,247 ---- "part %d, not %d", me, lineCount, idxTmp, partIdx); ! biffAdd(LIMN, err); airMopError(mop); return 1; } } *************** *** 250,254 **** "(#verts) from \"%s\" for face %d (of %d)", me, lineCount, line, faceGot, faceNum); ! biffAdd(LIMN, err); return 1; } if (vertNum+1 != airParseStrI(ibuff, line, AIR_WHITESPACE, vertNum+1)) { --- 252,256 ---- "(#verts) from \"%s\" for face %d (of %d)", me, lineCount, line, faceGot, faceNum); ! biffAdd(LIMN, err); airMopError(mop); return 1; } if (vertNum+1 != airParseStrI(ibuff, line, AIR_WHITESPACE, vertNum+1)) { *************** *** 256,260 **** "for face %d (of %d)", me, lineCount, vertNum+1, line, faceGot, faceNum); ! biffAdd(LIMN, err); return 1; } if (vertNum+1+3 == airParseStrF(fbuff, line, --- 258,262 ---- "for face %d (of %d)", me, lineCount, vertNum+1, line, faceGot, faceNum); ! biffAdd(LIMN, err); airMopError(mop); return 1; } if (vertNum+1+3 == airParseStrF(fbuff, line, *************** *** 283,287 **** faceGot++; } ! return 0; } --- 285,290 ---- faceGot++; } ! ! airMopOkay(mop); return 0; } |