diff options
author | Jorg Schuler <jcsjcs@users.sourceforge.net> | 2006-05-02 14:19:19 +0000 |
---|---|---|
committer | Jorg Schuler <jcsjcs@users.sourceforge.net> | 2006-05-02 14:19:19 +0000 |
commit | cac23ce995e682641a465ad5b9e33e4660e8103b (patch) | |
tree | ecbe8183ad99ffe5e5db6be2d1c48155160b1dbe | |
parent | 55a739f48a25bb4987bb1f9fe46633418551c23d (diff) | |
download | libgpod-cac23ce995e682641a465ad5b9e33e4660e8103b.tar.gz libgpod-cac23ce995e682641a465ad5b9e33e4660e8103b.tar.xz libgpod-cac23ce995e682641a465ad5b9e33e4660e8103b.zip |
* src/itdb_itunesdb.c: smart playlists: avoid assertion
when writing rules with empty strings.
git-svn-id: https://gtkpod.svn.sf.net/svnroot/gtkpod/libgpod/trunk@1251 f01d2545-417e-4e96-918e-98f8d0dbbcb6
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/itdb_itunesdb.c | 14 |
2 files changed, 14 insertions, 5 deletions
@@ -1,3 +1,8 @@ +2006-05-02 Jorg Schuler <jcsjcs at users.sourceforge.net> + + * src/itdb_itunesdb.c: smart playlists: avoid assertion + when writing rules with empty strings. + 2006-04-26 Jorg Schuler <jcsjcs at users.sourceforge.net> * tests/Makefile.am: removed 'test-rebuild-db' from diff --git a/src/itdb_itunesdb.c b/src/itdb_itunesdb.c index b35565e..f82021f 100644 --- a/src/itdb_itunesdb.c +++ b/src/itdb_itunesdb.c @@ -1,4 +1,4 @@ -/* Time-stamp: <2006-04-04 23:42:19 jcs> +/* Time-stamp: <2006-05-02 23:14:46 jcs> | | Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net> | Part of the gtkpod project. @@ -2820,10 +2820,10 @@ static void put_data_seek (WContents *cts, gchar *data, gulong len, gulong seek) { g_return_if_fail (cts); - g_return_if_fail (data); if (len != 0) { + g_return_if_fail (data); wcontents_maybe_expand (cts, len, seek); memcpy (&cts->contents[seek], data, len); @@ -3501,9 +3501,13 @@ static void mk_mhod (WContents *cts, MHODData *mhod) put32_n0 (cts, 11); /* unknown */ if (ft == splft_string) { /* write string-type rule */ - gunichar2 *entry_utf16 = - g_utf8_to_utf16 (splr->string, -1,NULL,NULL,NULL); - gint len = utf16_strlen (entry_utf16); + gunichar2 *entry_utf16 = NULL; + gint len; + /* splr->string may be NULL */ + if (splr->string) + entry_utf16 = g_utf8_to_utf16 (splr->string, + -1,NULL,NULL,NULL); + len = utf16_strlen (entry_utf16); fixup_big_utf16 (entry_utf16); put32bint (cts, 2*len); /* length of string */ put_data (cts, (gchar *)entry_utf16, 2*len); |