#0 0x080c27ce in save_entry (db=0x822e008, entry=0x89b4bb0, ctx=0xac73f34c) at rhythmdb-tree.c:858 853: if (entry->type == RHYTHMDB_ENTRY_TYPE_PODCAST_FEED || 854: entry->type == RHYTHMDB_ENTRY_TYPE_PODCAST_POST) 855: podcast = RHYTHMDB_ENTRY_GET_TYPE_DATA (entry, RhythmDBPodcastFields); 856: 857: RHYTHMDB_FWRITE_STATICSTR (" handle, ctx->error); 858: encoded = xmlEncodeEntitiesReentrant (NULL, BAD_CAST entry->type->name); 859: RHYTHMDB_FWRITE (encoded, 1, xmlStrlen (encoded), ctx->handle, ctx->error); 860: g_free (encoded); 861: 862: RHYTHMDB_FWRITE_STATICSTR ("\">\n", ctx->handle, ctx->error); 863: #1 0x080be9a1 in hash_tree_entries_foreach (key=0x89b4bb0, value=0x0, data=0xf) at rhythmdb-tree.c:2487 2482: RhythmDBEntry *entry = (RhythmDBEntry *) key; 2483: struct HashTreeIteratorCtxt *ctxt = (struct HashTreeIteratorCtxt*)data; 2484: 2485: g_assert (ctxt->entry_func); 2486: 2487: ctxt->entry_func (ctxt->db, entry, ctxt->data); 2488: } 2489: 2490: static void 2491: hash_tree_albums_foreach (gpointer key, 2492: gpointer value, #2 0xb6f3ce96 in IA__g_hash_table_foreach (hash_table=0x8be72e0, func=0x80be970 , user_data=0xac73f254) #3 0x080bfcd9 in hash_tree_albums_foreach (key=0x82246f8, value=0x8b70770, data=0xac73f254) at rhythmdb-tree.c:2502 2497: 2498: if (ctxt->album_func) { 2499: ctxt->album_func (ctxt->db, album, ctxt->data); 2500: } 2501: if (ctxt->entry_func != NULL) { 2502: g_hash_table_foreach (album->children, 2503: hash_tree_entries_foreach, 2504: ctxt); 2505: } 2506: } 2507: #4 0xb6f3ce96 in IA__g_hash_table_foreach (hash_table=0x897b840, func=0x80bfc80 , user_data=0xac73f254) at /build/buildd/glib2.0-2.14.1/glib/ghash.c:680 [Error: /build/buildd/glib2.0-2.14.1/glib/ghash.c was not found in source tree] #5 0x080bfc69 in hash_tree_artists_foreach (key=0x82246f8, value=0x8cf0fe0, data=0xac73f254) at rhythmdb-tree.c:2520 2515: 2516: if (ctxt->artist_func) { 2517: ctxt->artist_func (ctxt->db, artist, ctxt->data); 2518: } 2519: if ((ctxt->album_func != NULL) || (ctxt->entry_func != NULL)) { 2520: g_hash_table_foreach (artist->children, 2521: hash_tree_albums_foreach, 2522: ctxt); 2523: } 2524: } 2525: #6 0xb6f3ce96 in IA__g_hash_table_foreach (hash_table=0x8ac02c0, func=0x80bfc10 , user_data=0xac73f254) #7 0x080bfbe9 in hash_tree_genres_foreach (key=0x82246f8, value=0x8be2230, data=0xac73f254) at rhythmdb-tree.c:2541 2536: } 2537: 2538: if ((ctxt->album_func != NULL) 2539: || (ctxt->artist_func != NULL) 2540: || (ctxt->entry_func != NULL)) { 2541: g_hash_table_foreach (genre->children, 2542: hash_tree_artists_foreach, 2543: ctxt); 2544: } 2545: } 2546: #8 0xb6f3ce96 in IA__g_hash_table_foreach (hash_table=0x8c2ff40, func=0x80bfb90 , user_data=0xac73f254) at /build/buildd/glib2.0-2.14.1/glib/ghash.c:680 [Error: /build/buildd/glib2.0-2.14.1/glib/ghash.c was not found in source tree] #9 0x080bf9bb in rhythmdb_hash_tree_foreach (adb=0x822e008, type=0x8e1ca58, entry_func=, album_func=0, artist_func=0, genres_func=0, data=0xac73f34c) #10 0x080bfb7b in save_entry_type (name=0x8e1cab0 "lastfm-station", entry_type=0x8e1ca58, ctx=0xac73f34c) at rhythmdb-tree.c:1055 1050: { 1051: if (entry_type->save_to_disk == FALSE) 1052: return; 1053: 1054: rb_debug ("saving entries of type %s", name); 1055: rhythmdb_hash_tree_foreach (RHYTHMDB (ctx->db), entry_type, 1056: (RBTreeEntryItFunc) save_entry, 1057: NULL, NULL, NULL, ctx); 1058: } 1059: 1060: static void #11 0x080aba05 in rhythmdb_entry_type_foreach_cb (name=0x8e1cab0 "lastfm-station", entry_type=0x8e1ca58, data=0xac73f304) at rhythmdb.c:4032 4027: { 4028: /* skip aliases */ 4029: if (strcmp (entry_type->name, name)) 4030: return; 4031: 4032: data->func ((gpointer) name, entry_type, data->data); 4033: } 4034: 4035: /** 4036: * rhythmdb_entry_type_foreach: 4037: * @db: a #RhythmDB #12 0xb6f3ce96 in IA__g_hash_table_foreach (hash_table=0x82218e0, func=0x80ab9c0 , user_data=0xac73f304) #13 0x080ab977 in rhythmdb_entry_type_foreach (db=0x822e008, func=0x80bfae0 , data=0xac73f34c) at rhythmdb.c:4054 4049: 4050: d.func = func; 4051: d.data = data; 4052: 4053: g_mutex_lock (db->priv->entry_type_mutex); 4054: g_hash_table_foreach (db->priv->entry_type_map, 4055: (GHFunc) rhythmdb_entry_type_foreach_cb, 4056: &d); 4057: g_mutex_unlock (db->priv->entry_type_mutex); 4058: } 4059: #14 0x080c1b3c in rhythmdb_tree_save (rdb=0x822e008) at rhythmdb-tree.c:1122 1117: ctx.error = NULL; 1118: RHYTHMDB_FWRITE_STATICSTR ("\n" 1119: "\n", 1120: ctx.handle, ctx.error); 1121: 1122: rhythmdb_entry_type_foreach (rdb, (GHFunc) save_entry_type, &ctx); 1123: g_mutex_lock (RHYTHMDB_TREE(rdb)->priv->entries_lock); 1124: g_hash_table_foreach (db->priv->unknown_entry_types, 1125: (GHFunc) save_unknown_entry_type, 1126: &ctx); 1127: g_mutex_unlock (RHYTHMDB_TREE(rdb)->priv->entries_lock); #15 0x080acb07 in rhythmdb_save_thread_main (db=0x822e008) at rhythmdb.c:2534 2529: db->priv->saving = TRUE; 2530: 2531: rb_debug ("saving rhythmdb"); 2532: 2533: klass = RHYTHMDB_GET_CLASS (db); 2534: klass->impl_save (db); 2535: 2536: db->priv->saving = FALSE; 2537: db->priv->dirty = FALSE; 2538: 2539: g_mutex_unlock (db->priv->saving_mutex); #16 0xb6f6d5af in g_thread_create_proxy (data=0x8d12810) at /build/buildd/glib2.0-2.14.1/glib/gthread.c:635 [Error: /build/buildd/glib2.0-2.14.1/glib/gthread.c was not found in source tree] #17 0xb7cac46b in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 #18 0xb6e4a73e in clone () from /lib/tls/i686/cmov/libc.so.6