From fc03a17430d7fec3501d703961f318a2b0068f08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vanessa=20Chipirr=C3=A1s=20Naval=C3=B3n?= Date: Mon, 17 Aug 2015 18:02:28 +0200 Subject: [PATCH] handdetect: check CvHaarClassifierCascade is release before being modified. Make sure a previous cascade, if it exists, is released before loading a new XML file onto it. https://bugzilla.gnome.org/show_bug.cgi?id=752528 --- ext/opencv/gsthanddetect.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ext/opencv/gsthanddetect.c b/ext/opencv/gsthanddetect.c index 1ea247af39..f06b0c2623 100644 --- a/ext/opencv/gsthanddetect.c +++ b/ext/opencv/gsthanddetect.c @@ -289,12 +289,16 @@ gst_handdetect_set_property (GObject * object, guint prop_id, switch (prop_id) { case PROP_PROFILE_FIST: g_free (filter->profile_fist); + if (filter->cvCascade_fist) + cvReleaseHaarClassifierCascade (&filter->cvCascade_fist); filter->profile_fist = g_value_dup_string (value); filter->cvCascade_fist = gst_handdetect_load_profile (filter, filter->profile_fist); break; case PROP_PROFILE_PALM: g_free (filter->profile_palm); + if (filter->cvCascade_palm) + cvReleaseHaarClassifierCascade (&filter->cvCascade_palm); filter->profile_palm = g_value_dup_string (value); filter->cvCascade_palm = gst_handdetect_load_profile (filter, filter->profile_palm);