00001 /* 00002 * Copyright (C) 2005 Piotr Pokora <piotr.pokora@infoglob.pl> 00003 * 00004 * This program is free software; you can redistribute it and/or modify it 00005 * under the terms of the GNU Lesser General Public License as published 00006 * by the Free Software Foundation; either version 2 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software 00016 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 */ 00018 00019 #include "midgard/midgard_datatypes.h" 00020 00021 00022 /* This is quite important ( IMO ) to keep such function 00023 * instead of using g_free for key and value destructors 00024 * because sometimes you need to destroy const gchar values. 00025 * Besides faster to use. 00026 */ 00027 static void __destroy_hash_str_value(gpointer userdata){ 00028 00029 gchar *data = (gchar *) userdata; 00030 if(data) g_free(data); 00031 } 00032 00033 00034 GHashTable *midgard_hash_strings_new(void) 00035 { 00036 GHashTable *table; 00037 00038 table = g_hash_table_new_full( 00039 g_str_hash, g_str_equal, 00040 __destroy_hash_str_value, 00041 __destroy_hash_str_value); 00042 00043 return table; 00044 } 00045
1.4.6