From: <ny...@us...> - 2006-12-24 18:21:20
|
Revision: 198 http://svn.sourceforge.net/pmplib/?rev=198&view=rev Author: nyaochi Date: 2006-12-24 10:21:20 -0800 (Sun, 24 Dec 2006) Log Message: ----------- Trivial source code clean-up. Modified Paths: -------------- trunk/pmplib/lib/pmp_iriverplus3/dat.c Modified: trunk/pmplib/lib/pmp_iriverplus3/dat.c =================================================================== --- trunk/pmplib/lib/pmp_iriverplus3/dat.c 2006-12-24 18:03:21 UTC (rev 197) +++ trunk/pmplib/lib/pmp_iriverplus3/dat.c 2006-12-24 18:21:20 UTC (rev 198) @@ -27,7 +27,7 @@ - 0x00020000-0x0003FFFF: music (media information) chunk - Each chunk has a 16-bytes header at the beginning - Each chunk has an array of offsets to actual entries at the end (backward) -- Field names in db.dat seem to be defined in db.dic (Music and Objects) +- Field names in db.dat are defined in db.dic (Music and Objects) */ #ifdef HAVE_CONFIG_H @@ -48,12 +48,14 @@ static void dat_entry_init(dat_entry_t* entry, const dic_list_t* dic_list) { - int i; memset(entry, 0, sizeof(*entry)); - entry->num_fields = dic_list->num_fields; - entry->fields = (ip3db_variant_t*)malloc(sizeof(ip3db_variant_t) * entry->num_fields); - for (i = 0;i < entry->num_fields;++i) { - ip3db_variant_init(&entry->fields[i], dic_list->fields[i].type); + entry->fields = (ip3db_variant_t*)malloc(sizeof(ip3db_variant_t) * dic_list->num_fields); + if (entry->fields) { + int i; + entry->num_fields = dic_list->num_fields; + for (i = 0;i < entry->num_fields;++i) { + ip3db_variant_init(&entry->fields[i], dic_list->fields[i].type); + } } } @@ -67,13 +69,15 @@ memset(entry, 0, sizeof(*entry)); } -static size_t dat_entry_serialize(uint8_t* block, uint8_t* q, dat_entry_t* entry, int is_storing) +static size_t dat_entry_serialize(dat_entry_t* entry, uint8_t* block, uint8_t* q, int is_storing) { int i; uint8_t *p = block; + /* Serialize offset address of this entry. */ q -= serialize_uint32be(q, &entry->offset, is_storing); + /* Serialize all fields in this entry. */ for (i = 0;i < entry->num_fields;++i) { ip3db_variant_t* var = &entry->fields[i]; switch (var->type) { @@ -99,7 +103,7 @@ return (size_t)(p - block); } -static void dat_entry_dump(dat_entry_t* entry, FILE *fp, const dic_list_t* dic_list) +static void dat_entry_dump(dat_entry_t* entry, const dic_list_t* dic_list, FILE *fp) { int i; @@ -139,7 +143,7 @@ dat_list_init(list); } -static size_t dat_list_serialize(uint8_t* buffer, dat_list_t* list, int is_storing, const dic_list_t* dic_list) +static size_t dat_list_serialize(dat_list_t* list, const dic_list_t* dic_list, uint8_t* buffer, int is_storing) { uint32_t i; uint8_t *p = buffer; @@ -160,14 +164,14 @@ for (i = 0;i < list->num_entries;++i) { dat_entry_t* entry = &list->entries[i]; - p += dat_entry_serialize(p, q, entry, is_storing); + p += dat_entry_serialize(entry, p, q, is_storing); q -= sizeof(uint32_t); } return (size_t)(p - buffer); } -static void dat_list_dump(dat_list_t* list, FILE *fp, const dic_list_t* dic_list) +static void dat_list_dump(dat_list_t* list, const dic_list_t* dic_list, FILE *fp) { uint32_t i; @@ -179,7 +183,7 @@ for (i = 0;i < list->num_entries;++i) { dat_entry_t* entry = &list->entries[i]; fprintf(fp, " ENTRY %d (0x%08X) = {\n", i, entry->offset); - dat_entry_dump(entry, fp, dic_list); + dat_entry_dump(entry, dic_list, fp); fprintf(fp, " }\n"); } } @@ -203,8 +207,8 @@ size_t dat_serialize(dat_t* dat, const dic_t* dic, uint8_t* buffer, int is_storing) { - dat_list_serialize(buffer, &dat->objects, is_storing, &dic->objects); - dat_list_serialize(buffer + 0x00020000, &dat->musics, is_storing, &dic->music); + dat_list_serialize(&dat->objects, &dic->objects, buffer, is_storing); + dat_list_serialize(&dat->musics, &dic->music, buffer + 0x00020000, is_storing); return 0; } @@ -212,9 +216,9 @@ { fprintf(fp, "===== db.dat =====\n"); fprintf(fp, "OBJECTS = {\n"); - dat_list_dump(&dat->objects, fp, &dic->objects); + dat_list_dump(&dat->objects, &dic->objects, fp); fprintf(fp, "}\n"); fprintf(fp, "MUSIC = {\n"); - dat_list_dump(&dat->musics, fp, &dic->music); + dat_list_dump(&dat->musics, &dic->music, fp); fprintf(fp, "}\n"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |