summaryrefslogtreecommitdiff
path: root/apps/plugins/searchengine/dbinterface.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/searchengine/dbinterface.c')
-rw-r--r--apps/plugins/searchengine/dbinterface.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/apps/plugins/searchengine/dbinterface.c b/apps/plugins/searchengine/dbinterface.c
index 778a7adb3b..c9bbc12c02 100644
--- a/apps/plugins/searchengine/dbinterface.c
+++ b/apps/plugins/searchengine/dbinterface.c
@@ -87,8 +87,7 @@ void loadentry(int filerecord) {
87} 87}
88 88
89void loadsongdata() { 89void loadsongdata() {
90 if(currententry->loadedsongdata || 90 if(currententry->loadedsongdata)
91 !currententry->loadedfiledata)
92 return; 91 return;
93 currententry->title=(char *)my_malloc(rb->tagdbheader->songlen); 92 currententry->title=(char *)my_malloc(rb->tagdbheader->songlen);
94 currententry->genre=(char *)my_malloc(rb->tagdbheader->genrelen); 93 currententry->genre=(char *)my_malloc(rb->tagdbheader->genrelen);
@@ -112,6 +111,9 @@ void loadartistname() {
112 /* memory optimization possible, only malloc for an album name once, then 111 /* memory optimization possible, only malloc for an album name once, then
113 * write that pointer to the entrys using it. 112 * write that pointer to the entrys using it.
114 */ 113 */
114 if(currententry->loadedartistname)
115 return;
116 loadsongdata();
115 currententry->artistname=(char *)my_malloc(rb->tagdbheader->artistlen); 117 currententry->artistname=(char *)my_malloc(rb->tagdbheader->artistlen);
116 rb->lseek(*rb->tagdb_fd,currententry->artistoffset,SEEK_SET); 118 rb->lseek(*rb->tagdb_fd,currententry->artistoffset,SEEK_SET);
117 rb->read(*rb->tagdb_fd,currententry->artistname,rb->tagdbheader->artistlen); 119 rb->read(*rb->tagdb_fd,currententry->artistname,rb->tagdbheader->artistlen);
@@ -120,6 +122,9 @@ void loadartistname() {
120 122
121void loadalbumname() { 123void loadalbumname() {
122 /* see the note at loadartistname */ 124 /* see the note at loadartistname */
125 if(currententry->loadedalbumname)
126 return;
127 loadsongdata();
123 currententry->albumname=(char *)my_malloc(rb->tagdbheader->albumlen); 128 currententry->albumname=(char *)my_malloc(rb->tagdbheader->albumlen);
124 rb->lseek(*rb->tagdb_fd,currententry->albumoffset,SEEK_SET); 129 rb->lseek(*rb->tagdb_fd,currententry->albumoffset,SEEK_SET);
125 rb->read(*rb->tagdb_fd,currententry->albumname,rb->tagdbheader->albumlen); 130 rb->read(*rb->tagdb_fd,currententry->albumname,rb->tagdbheader->albumlen);