Esempio n. 1
0
void events_destroy (vmi_instance_t vmi)
{
    if(!(vmi->init_mode & VMI_INIT_EVENTS)){
        return;
    }

    g_hash_table_foreach_steal(vmi->mem_events, event_entry_free, vmi);
    g_hash_table_foreach_steal(vmi->reg_events, event_entry_free, vmi);
    g_hash_table_foreach_remove(vmi->ss_events, event_entry_free, vmi);

    g_hash_table_destroy(vmi->mem_events);
    g_hash_table_destroy(vmi->reg_events);
    g_hash_table_destroy(vmi->ss_events);
}
Esempio n. 2
0
static int remove_unused(struct mwServiceAware *srvc) {
  /* - create a GList of all the unused aware entries
     - remove each unused aware from the service
     - if the service is alive, send a removal message for the collected
     unused.
  */

  int ret = 0;
  GList *dead = NULL, *l;

  if(srvc->entries) {
    g_info("bring out your dead *clang*");
    g_hash_table_foreach_steal(srvc->entries, collect_dead, &dead);
  }
 
  if(dead) {
    if(MW_SERVICE_IS_LIVE(srvc))
      ret = send_rem(srvc->channel, dead) || ret;
    
    for(l = dead; l; l = l->next)
      aware_entry_free(l->data);

    g_list_free(dead);
  }

  return ret;
}
static void
gst_file_index_dispose (GObject * object)
{
  GstFileIndex *index = GST_FILE_INDEX (object);

  if (index->location) {
    g_free (index->location);
    index->location = NULL;
  }

  {
    GSList *elem;

    for (elem = index->unresolved; elem; elem = g_slist_next (elem))
      _file_index_id_free (elem->data, index->is_loaded);
    g_slist_free (index->unresolved);
    index->unresolved = NULL;
  }

  g_hash_table_foreach_steal (index->id_index,
      (GHRFunc) _id_index_free_helper, index);
  g_hash_table_destroy (index->id_index);
  index->id_index = NULL;

  gst_index_entry_free (index->ret_entry);      /* hack */

  G_OBJECT_CLASS (gst_file_index_parent_class)->dispose (object);
}
gboolean dbus_glib_object1_dict_send_method_impl(DBusGlibObject1 *self, 
		GHashTable*         in_hash, 
		gint*         out_int, 
        GError **error)
	{
		g_hash_table_foreach_steal(in_hash, iter_func, NULL);
		
		*out_int = 5050;
		return TRUE;
	}
Esempio n. 5
0
static void
_on_group_service_dispose (
        gpointer data,
        GObject *dead)
{
    GumdDbusServerP2P *server = GUMD_DBUS_SERVER_P2P (data);
    g_return_if_fail (server);
    g_hash_table_foreach_steal (server->priv->group_service_adapters,
                _compare_by_pointer, dead);
}
Esempio n. 6
0
void clean_all_users_from_online(int fd)
{
	int i;
	for (i = 0; i < MAX_ONLINE_NUM; ++i) {
		if (all_fds[i] && (all_fds[i]->fd == fd)) {
			all_fds[i] = NULL;
			g_hash_table_foreach_steal(all_home,clean_online_users, &i);
			break;
		}
	}
}
Esempio n. 7
0
void rofi_theme_widget_add_properties ( ThemeWidget *widget, GHashTable *table )
{
    if ( table == NULL ) {
        return;
    }
    if ( widget->properties == NULL ) {
        widget->properties = table;
        return;
    }
    g_hash_table_foreach_steal ( table, rofi_theme_steal_property_int, widget->properties );
    g_hash_table_destroy ( table );
}
Esempio n. 8
0
static gboolean clean_online_users(void* key, void* value, void* data)
{
	home_t* h = value;
	clean_user_args_t arg = {*(uint32_t*)data, h};

	g_hash_table_foreach_steal(h->sprites, clean_user, &arg);
	if (0 == g_hash_table_size(h->sprites)) {
		free_homemaps(NULL, h, NULL);	
		return TRUE;
	}

	return FALSE;
}
Esempio n. 9
0
gboolean
jaw_util_dispatch_key_event (AtkKeyEventStruct *event)
{
  gint consumed = 0;
  if (key_listener_list) {
    GHashTable *new_hash = g_hash_table_new(NULL, NULL);
    g_hash_table_foreach(key_listener_list, insert_hf, new_hash);
    consumed = g_hash_table_foreach_steal(new_hash, notify_hf, event);
    g_hash_table_destroy(new_hash);
  }

  return (consumed > 0) ? TRUE : FALSE;
}
Esempio n. 10
0
static int remove_unused_attrib(struct mwServiceAware *srvc) {
  GList *dead = NULL;

  if(srvc->attribs) {
    g_info("collecting dead attributes");
    g_hash_table_foreach_steal(srvc->attribs, collect_attrib_dead, &dead);
  }
 
  /* since we stole them, we'll have to clean 'em up manually */
  for(; dead; dead = g_list_delete_link(dead, dead)) {
    attrib_entry_free(dead->data);
  }

  return MW_SERVICE_IS_LIVE(srvc)? send_attrib_list(srvc): 0;
}
Esempio n. 11
0
static void
xfce_xsettings_helper_load (XfceXSettingsHelper *helper)
{
    GHashTable *props;

    props = xfconf_channel_get_properties (helper->channel, NULL);
    if (G_LIKELY (props != NULL))
      {
        /* steal properties and put them in the settings table */
        g_hash_table_foreach_steal (props,
            (GHRFunc) xfce_xsettings_helper_prop_load, helper);

        /* destroy the remaining properties */
        g_hash_table_destroy (props);
      }
}
static gint
mai_key_snooper(GtkWidget *the_widget, GdkEventKey *event, gpointer func_data)
{
    /* notify each AtkKeySnoopFunc in turn... */

    MaiKeyEventInfo *info = g_new0(MaiKeyEventInfo, 1);
    gint consumed = 0;
    if (key_listener_list) {
        GHashTable *new_hash = g_hash_table_new(NULL, NULL);
        g_hash_table_foreach (key_listener_list, insert_hf, new_hash);
        info->key_event = atk_key_event_from_gdk_event_key (event);
        info->func_data = func_data;
        consumed = g_hash_table_foreach_steal (new_hash, notify_hf, info);
        g_hash_table_destroy (new_hash);
        g_free(info->key_event);
    }
    g_free(info);
    return (consumed ? 1 : 0);
}
Esempio n. 13
0
static void 
anjuta_test_shell_remove_widget (AnjutaShell *shell, 
								  GtkWidget *w, 
								  GError **error)
{
	// gint old_size;
	GtkWidget *client_win;
	AnjutaTestShell *window = ANJUTA_TEST_SHELL (shell);
	g_return_if_fail (w != NULL);

	// old_size = g_hash_table_size (window->widgets);
	// g_object_set_data (G_OBJECT (w), "__temp_shell__", shell);
	g_hash_table_foreach_steal (window->widgets, remove_from_widgets_hash, w);
	// if (old_size != g_hash_table_size (window->widgets))
	// {
		client_win = gtk_widget_get_toplevel (w);
		gtk_container_remove (GTK_CONTAINER (client_win), w);
		gtk_widget_destroy (client_win);
	//}
}
Esempio n. 14
0
static void on_open_files( GtkAction* action, FindFile* data )
{
    GtkTreeModel* model;
    GtkTreeSelection* sel;
    GtkTreeIter it;
    GList *row, *rows, *sel_files;
    GHashTable* hash;
    GtkWidget* w;
    VFSFileInfo* fi;
    gboolean open_files_has_dir = FALSE;  //sfm
    PtkFileBrowser* file_browser = NULL;  //sfm
    gboolean open_files = TRUE;
    
    if ( action )
        open_files = (0 == strcmp( gtk_action_get_name(action), "OpenAction") );

    sel = gtk_tree_view_get_selection( GTK_TREE_VIEW( data->result_view ) );
    rows = gtk_tree_selection_get_selected_rows( sel, &model );
    if( ! rows )
        return;

    //sfm this frees list when new value inserted - caused segfault
    //hash = g_hash_table_new_full( g_str_hash, g_str_equal, (GDestroyNotify)g_free, open_files ? (GDestroyNotify)vfs_file_info_list_free : NULL );
    hash = g_hash_table_new_full( g_str_hash, g_str_equal, (GDestroyNotify)g_free, NULL );

    for( row = rows; row; row = row->next )
    {
        char* dir;
        GtkTreePath* tp = (GtkTreePath*)row->data;

        if( gtk_tree_model_get_iter( model, &it, tp ) )
        {
            if( open_files ) /* open files */
                gtk_tree_model_get( model, &it, COL_INFO, &fi, COL_DIR, &dir, -1 );
            else  /* open containing folders */
                gtk_tree_model_get( model, &it, COL_DIR, &dir, -1 );

            if( open_files )
            {
                GList *l;
                l = g_hash_table_lookup( hash, dir );
                l = g_list_prepend( l, vfs_file_info_ref(fi) );
                g_hash_table_insert( hash, dir, l );  //sfm caused segfault with destroy function
                if ( vfs_file_info_is_dir( fi ) )  //sfm
                    open_files_has_dir = TRUE;
            }
            else
            {
                if( g_hash_table_lookup( hash, dir ) )
                    g_free( dir );
                g_hash_table_insert( hash, dir, NULL );
            }
        }
        gtk_tree_path_free( tp );
    }
    g_list_free( rows );

    if( open_files )
    {
        if ( open_files_has_dir )
        {
            w = GTK_WIDGET( fm_main_window_get_last_active() );
            if( ! w )
            {
                w = fm_main_window_new();
                gtk_window_set_default_size( GTK_WINDOW( w ), app_settings.width, app_settings.height );
            }
            gtk_window_present( (GtkWindow*)w );
            file_browser = (PtkFileBrowser*)fm_main_window_get_current_file_browser(
                                                                (FMMainWindow*)w );
        }
        g_hash_table_foreach_steal( hash, (GHRFunc)open_file, file_browser );
    }
    else
    {
        w = GTK_WIDGET( fm_main_window_get_last_active() );
        if( ! w )
        {
            w = fm_main_window_new();
            gtk_window_set_default_size( GTK_WINDOW( w ), app_settings.width, app_settings.height );
        }

        g_hash_table_foreach( hash, (GHFunc)open_dir, w );
        gtk_window_present( (GtkWindow*)w );
    }

    g_hash_table_destroy( hash );
}
gboolean
_gtk_source_language_file_parse_version2 (GtkSourceLanguage       *language,
					  GtkSourceContextData    *ctx_data)
{
	GHashTable *defined_regexes, *styles;
	gboolean success;
	GError *error = NULL;
	gchar *filename;
	GHashTable *loaded_lang_ids;
	GQueue *replacements;

	g_return_val_if_fail (ctx_data != NULL, FALSE);

	filename = language->priv->lang_file_name;

	/* TODO: as an optimization tell the parser to merge CDATA
	 * as text nodes (XML_PARSE_NOCDATA), and to ignore blank
	 * nodes (XML_PARSE_NOBLANKS), if it is possible with
	 * xmlTextReader. */
	xmlKeepBlanksDefault (0);
	xmlLineNumbersDefault (1);
	xmlSubstituteEntitiesDefault (1);
	DEBUG (xmlPedanticParserDefault (1));

	defined_regexes = g_hash_table_new_full (g_str_hash, g_str_equal,
						 g_free, g_free);
	styles = g_hash_table_new_full (g_str_hash,
					g_str_equal,
					g_free,
					(GDestroyNotify) _gtk_source_style_info_free);
	loaded_lang_ids = g_hash_table_new_full (g_str_hash, g_str_equal,
						 (GDestroyNotify) xmlFree,
						 NULL);
	replacements = g_queue_new ();

	success = file_parse (filename, language, ctx_data,
			      defined_regexes, styles,
			      loaded_lang_ids, replacements,
			      &error);

	if (success)
		success = _gtk_source_context_data_finish_parse (ctx_data, replacements->head, &error);

	if (success)
		g_hash_table_foreach_steal (styles,
					    (GHRFunc) steal_styles_mapping,
					    language->priv->styles);

	g_queue_foreach (replacements, (GFunc) _gtk_source_context_replace_free, NULL);
	g_queue_free (replacements);
	g_hash_table_destroy (loaded_lang_ids);
	g_hash_table_destroy (defined_regexes);
	g_hash_table_destroy (styles);

	if (!success)
	{
		g_warning ("Failed to load '%s': %s",
			   filename, error->message);
		g_error_free (error);
		return FALSE;
	}

	return TRUE;
}
Esempio n. 16
0
void clean_home_by_idx(int idx)
{
	g_hash_table_foreach(maps, do_clean_home_by_idx, &idx);
	KDEBUG_LOG(0, "HOME USER CNT [%d %u]", idx, g_hash_table_size(maps));
	g_hash_table_foreach_steal(war_sprites, noti_cli_leave_war, NULL);
}