static gboolean transform_release (YelpTransform *transform) { printf ("\nRELEASE\n"); if (!freed) { yelp_transform_cancel (transform); g_object_unref (transform); } freed = TRUE; return FALSE; }
static void transform_finished (YelpTransform *transform, gpointer user_data) { printf ("\nFINAL\n"); if (!freed) { yelp_transform_cancel (transform); g_object_unref (transform); } freed = TRUE; }
static void info_document_disconnect (YelpInfoDocument *info) { YelpInfoDocumentPrivate *priv = GET_PRIV (info); if (priv->chunk_ready) { g_signal_handler_disconnect (priv->transform, priv->chunk_ready); priv->chunk_ready = 0; } if (priv->finished) { g_signal_handler_disconnect (priv->transform, priv->finished); priv->finished = 0; } if (priv->error) { g_signal_handler_disconnect (priv->transform, priv->error); priv->error = 0; } yelp_transform_cancel (priv->transform); g_object_unref (priv->transform); priv->transform = NULL; priv->transform_running = FALSE; }