diff options
Diffstat (limited to 'apps/plugins/searchengine/dbinterface.c')
-rw-r--r-- | apps/plugins/searchengine/dbinterface.c | 9 |
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 | ||
89 | void loadsongdata() { | 89 | void 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 | ||
121 | void loadalbumname() { | 123 | void 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); |