annotate liszt.cpp @ 601:82d23418d867

Fix some fd leaks in the command-line binary Strictly speaking, they're not really leaks, because the only codepath that suffers from these leaks exits immediately afterwards. On the other hand, this fix makes valgrind on e.g. tests/0025 happier, going from 5 errors to none.
author mas01cr
date Fri, 14 Aug 2009 16:39:32 +0000
parents e18843dc0aea
children
rev   line source
mas01cr@548 1 extern "C" {
mas01cr@548 2 #include "audioDB_API.h"
mas01cr@548 3 }
mas01cr@548 4 #include "audioDB-internals.h"
mas01cr@498 5
mas01cr@548 6 adb_liszt_results_t *audiodb_liszt(adb_t *adb) {
mas01cr@548 7 uint32_t nfiles = adb->header->numFiles;
mas01cr@548 8 adb_liszt_results_t *results;
mas01cr@548 9 results = (adb_liszt_results_t *) calloc(sizeof(adb_liszt_results_t),1);
mas01cr@548 10 results->nresults = nfiles;
mas01cr@548 11 if(nfiles > 0) {
mas01cr@548 12 results->entries = (adb_track_entry_t *) malloc(nfiles * sizeof(adb_track_entry_t));
mas01cr@498 13 }
mas01cr@548 14 for(uint32_t k = 0; k < nfiles; k++) {
mas01cr@548 15 results->entries[k].nvectors = (*adb->track_lengths)[k];
mas01cr@548 16 results->entries[k].key = audiodb_index_key(adb, k);
mas01cr@548 17 }
mas01cr@548 18 return results;
mas01cr@548 19 }
mas01cr@498 20
mas01cr@548 21 int audiodb_liszt_free_results(adb_t *adb, adb_liszt_results_t *results) {
mas01cr@548 22 free(results->entries);
mas01cr@548 23 free(results);
mas01cr@548 24 return 0;
mas01cr@498 25 }