DistanceTransformTwoDimensionalProblem_FixMemLeak.diff
opencv/modules/objdetect/src/distancetransform.cpp (working copy) | ||
---|---|---|
347 | 347 |
int size = n * m; |
348 | 348 |
|
349 | 349 |
// Allocation memory (must be free in this function) |
350 |
internalDistTrans = (float *)malloc(sizeof(float) * size);
|
|
350 |
internalDistTrans = (float *)malloc(sizeof(float) * size); |
|
351 | 351 |
internalPointsX = (int *)malloc(sizeof(int) * size); |
352 | 352 |
|
353 |
|
|
354 | 353 |
for (i = 0; i < n; i++) |
355 | 354 |
{ |
356 | 355 |
resOneDimProblem = DistanceTransformOneDimensionalProblem( |
... | ... | |
361 | 360 |
if (resOneDimProblem != DISTANCE_TRANSFORM_OK) |
362 | 361 |
{ |
363 | 362 |
free(internalDistTrans); |
363 |
free(internalPointsX); |
|
364 | 364 |
return DISTANCE_TRANSFORM_ERROR; |
365 | 365 |
} /* if (resOneDimProblem != DISTANCE_TRANSFORM_OK) */ |
366 | 366 |
} |
... | ... | |
375 | 375 |
if (resOneDimProblem != DISTANCE_TRANSFORM_OK) |
376 | 376 |
{ |
377 | 377 |
free(internalDistTrans); |
378 |
free(internalPointsX); |
|
378 | 379 |
return DISTANCE_TRANSFORM_ERROR; |
379 | 380 |
} /* if (resOneDimProblem != DISTANCE_TRANSFORM_OK) */ |
380 | 381 |
} |