static gint clear_cache(GtkWidget *widget,gpointer *data) { LOG(LOG_DEBUG, "IN : clear_cache()"); remove_recursive(cache_dir); LOG(LOG_DEBUG, "OUT : clear_cache()"); return(TRUE); }
static void remove_recursive(gchar *dirname) { GDir *dir; const gchar *name; gchar fullpath[512]; gint r; LOG(LOG_DEBUG, "IN : remove_recursive(%s)", dirname); if((dir = g_dir_open(dirname, 0, NULL)) == NULL){ LOG(LOG_ERROR, "Failed to open directory %s", dirname); LOG(LOG_DEBUG, "OUT : list_file_recursive()"); return; } while((name = g_dir_read_name(dir)) != NULL){ if(strcmp(dirname,"/")==0){ sprintf(fullpath,"/%s",name); } else { sprintf(fullpath,"%s%s%s",dirname, DIR_DELIMITER, name); } if(g_file_test(fullpath, G_FILE_TEST_IS_REGULAR) == TRUE){ r = unlink(fullpath); if(r != 0){ LOG(LOG_ERROR, "unlink : %s", strerror(errno)); } } else if(g_file_test(fullpath, G_FILE_TEST_IS_DIR) == TRUE){ remove_recursive(fullpath); r = rmdir(fullpath); if(r != 0){ LOG(LOG_ERROR, "rmdir: %s", strerror(errno)); } } } g_dir_close(dir); LOG(LOG_DEBUG, "OUT : remove_recursive()"); }
void kms_pointer_detector_finalize (GObject * object) { KmsPointerDetector *pointerdetector = KMS_POINTER_DETECTOR (object); GST_DEBUG_OBJECT (pointerdetector, "finalize"); /* clean up object here */ if (pointerdetector->buttonsLayoutList != NULL) { kms_pointer_detector_dispose_buttons_layout_list (pointerdetector); } if (pointerdetector->buttonsLayout != NULL) { gst_structure_free (pointerdetector->buttonsLayout); } if (pointerdetector->cvImage != NULL) { cvReleaseImageHeader (&pointerdetector->cvImage); } if (pointerdetector->cvImageAux1 != NULL) { cvReleaseImage (&pointerdetector->cvImageAux1); } cvReleaseHist (&pointerdetector->histCompare); cvReleaseHist (&pointerdetector->histModel); cvReleaseHist (&pointerdetector->histSetUp1); cvReleaseHist (&pointerdetector->histSetUp2); cvReleaseHist (&pointerdetector->histSetUpRef); remove_recursive (pointerdetector->images_dir); g_free (pointerdetector->images_dir); if (pointerdetector->previousButtonClickedId != NULL) { g_free (pointerdetector->previousButtonClickedId); } G_OBJECT_CLASS (kms_pointer_detector_parent_class)->finalize (object); }
static void kms_image_overlay_finalize (GObject * object) { KmsImageOverlay *imageoverlay = KMS_IMAGE_OVERLAY (object); if (imageoverlay->priv->cvImage != NULL) cvReleaseImage (&imageoverlay->priv->cvImage); if (imageoverlay->priv->costume != NULL) cvReleaseImage (&imageoverlay->priv->costume); if (imageoverlay->priv->image_to_overlay != NULL) gst_structure_free (imageoverlay->priv->image_to_overlay); if (imageoverlay->priv->dir_created) { remove_recursive (imageoverlay->priv->dir); g_free (imageoverlay->priv->dir); } g_queue_free_full (imageoverlay->priv->events_queue, dispose_queue_element); imageoverlay->priv->events_queue = NULL; G_OBJECT_CLASS (kms_image_overlay_parent_class)->finalize (object); }