From 684692a80bd0b0fb0a4f0f9a64db557c728b3a16 Mon Sep 17 00:00:00 2001 From: ser1zw Date: Sat, 9 Apr 2011 23:46:31 +0900 Subject: [PATCH] modified CvMat#snake_image to remove unnecessary variables, fix memory leak --- ext/cvmat.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ext/cvmat.cpp b/ext/cvmat.cpp index 8d10080..a1ddf3e 100644 --- a/ext/cvmat.cpp +++ b/ext/cvmat.cpp @@ -4817,10 +4817,9 @@ rb_cam_shift(VALUE self, VALUE window, VALUE criteria) VALUE rb_snake_image(int argc, VALUE *argv, VALUE self) { - VALUE points, alpha, beta, gamma, window, criteria, calc_gradient, storage; + VALUE points, alpha, beta, gamma, window, criteria, calc_gradient; rb_scan_args(argc, argv, "61", &points, &alpha, &beta, &gamma, &window, &criteria, &calc_gradient); CvPoint *pointset = 0; - CvSeq *seq = 0; int length = CVPOINTS_FROM_POINT_SET(points, &pointset); int coeff = (TYPE(alpha) == T_ARRAY && TYPE(beta) == T_ARRAY && TYPE(gamma) == T_ARRAY) ? CV_ARRAY : CV_VALUE; float *a = 0, *b = 0, *c = 0; @@ -4852,7 +4851,8 @@ rb_snake_image(int argc, VALUE *argv, VALUE self) VALUE result = rb_ary_new2(length); for (i = 0; i < length; ++i) rb_ary_push(result, cCvPoint::new_object(pointset[i])); - + cvFree(&pointset); + return result; }