static void egg_task_cache_finalize (GObject *object) { G_OBJECT_CLASS (egg_task_cache_parent_class)->finalize (object); EGG_COUNTER_DEC (instances); }
static void ide_thread_pool_worker (gpointer data, gpointer user_data) { WorkItem *work_item = data; gpointer source_object; gpointer task_data; GCancellable *cancellable; g_assert (work_item != NULL); EGG_COUNTER_DEC (QueuedTasks); if (work_item->type == TYPE_TASK) { source_object = g_task_get_source_object (work_item->task.task); task_data = g_task_get_task_data (work_item->task.task); cancellable = g_task_get_cancellable (work_item->task.task); work_item->task.func (work_item->task.task, source_object, task_data, cancellable); g_object_unref (work_item->task.task); } else if (work_item->type == TYPE_FUNC) { work_item->func.callback (work_item->func.data); } g_slice_free (WorkItem, work_item); }
static void egg_task_cache_fetch_cb (GObject *object, GAsyncResult *result, gpointer user_data) { EggTaskCache *self = (EggTaskCache *)object; GTask *task = (GTask *)result; GError *error = NULL; gpointer key = user_data; gpointer ret; g_assert (EGG_IS_TASK_CACHE (self)); g_assert (G_IS_TASK (task)); g_hash_table_remove (self->in_flight, key); ret = g_task_propagate_pointer (task, &error); if (ret != NULL) { egg_task_cache_populate (self, key, ret); egg_task_cache_propagate_pointer (self, key, ret); self->value_destroy_func (ret); } else { egg_task_cache_propagate_error (self, key, error); g_clear_error (&error); } self->key_destroy_func (key); EGG_COUNTER_DEC (in_flight); }
static void ide_git_buffer_change_monitor_finalize (GObject *object) { G_OBJECT_CLASS (ide_git_buffer_change_monitor_parent_class)->finalize (object); EGG_COUNTER_DEC (instances); }
static void ide_ctags_completion_item_finalize (GObject *object) { IdeCtagsCompletionItem *self = (IdeCtagsCompletionItem *)object; ide_clear_weak_pointer (&self->context); G_OBJECT_CLASS (ide_ctags_completion_item_parent_class)->finalize (object); EGG_COUNTER_DEC (instances); }
static void ide_file_settings_finalize (GObject *object) { IdeFileSettings *self = (IdeFileSettings *)object; IdeFileSettingsPrivate *priv = ide_file_settings_get_instance_private (self); g_clear_pointer (&priv->children, g_ptr_array_unref); g_clear_pointer (&priv->encoding, g_free); ide_clear_weak_pointer (&priv->file); G_OBJECT_CLASS (ide_file_settings_parent_class)->finalize (object); EGG_COUNTER_DEC (instances); }
void ide_diagnostic_unref (IdeDiagnostic *self) { g_return_if_fail (self); g_return_if_fail (self->ref_count > 0); if (g_atomic_int_dec_and_test (&self->ref_count)) { g_clear_pointer (&self->location, ide_source_location_unref); g_clear_pointer (&self->text, g_free); g_clear_pointer (&self->ranges, g_ptr_array_unref); g_clear_pointer (&self->fixits, g_ptr_array_unref); g_free (self); EGG_COUNTER_DEC (instances); } }
static void ide_file_finalize (GObject *object) { IdeFile *self = (IdeFile *)object; IDE_ENTRY; g_clear_object (&self->file_settings); g_clear_object (&self->file); g_clear_object (&self->source_file); g_clear_object (&self->language); g_clear_pointer (&self->path, g_free); g_clear_pointer (&self->content_type, g_free); G_OBJECT_CLASS (ide_file_parent_class)->finalize (object); EGG_COUNTER_DEC (instances); IDE_EXIT; }
static gboolean egg_task_cache_evict_full (EggTaskCache *self, gconstpointer key, gboolean check_heap) { CacheItem *item; g_return_val_if_fail (EGG_IS_TASK_CACHE (self), FALSE); if ((item = g_hash_table_lookup (self->cache, key))) { if (check_heap) { gsize i; for (i = 0; i < self->evict_heap->len; i++) { if (item == egg_heap_index (self->evict_heap, gpointer, i)) { egg_heap_extract_index (self->evict_heap, i, NULL); break; } } } g_hash_table_remove (self->cache, key); EGG_COUNTER_DEC (cached); if (self->evict_source != NULL) evict_source_rearm (self->evict_source); return TRUE; } return FALSE; }