DistanceTransformTwoDimensionalProblem_FixMemLeak.diff

msrtis -, 2011-09-21 07:50 am

Download (1.2 kB)

 
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
    }