Fix for out of stack space on large music libraries

This commit is contained in:
Ron Pedde 2004-04-22 04:20:30 +00:00
parent 2dee0cebd4
commit 8ef12d52f6
2 changed files with 38 additions and 34 deletions

View File

@ -239,9 +239,7 @@ DAAP_BLOCK *daap_add_empty(DAAP_BLOCK *parent, char *tag) {
int daap_serialize(DAAP_BLOCK *root, int fd, int gzip) {
char size[4];
if(!root)
return 0;
while(root) {
r_write(fd,root->tag,4);
size[0] = (root->reported_size >> 24) & 0xFF;
@ -263,8 +261,8 @@ int daap_serialize(DAAP_BLOCK *root, int fd, int gzip) {
return -1;
}
if(daap_serialize(root->next,fd,gzip))
return -1;
root=root->next;
}
return 0;
}
@ -275,9 +273,9 @@ int daap_serialize(DAAP_BLOCK *root, int fd, int gzip) {
* Free an entire daap formatted block
*/
void daap_free(DAAP_BLOCK *root) {
if(!root)
return;
DAAP_BLOCK *pnext;
while(root) {
DPRINTF(ERR_DEBUG,"Freeing %c%c%c%c\n",root->tag[0],root->tag[1],
root->tag[2],root->tag[3]);
@ -285,7 +283,10 @@ void daap_free(DAAP_BLOCK *root) {
free(root->value); /* otherwise, static value */
daap_free(root->children);
daap_free(root->next);
pnext=root->next;
free(root);
root=pnext;
}
return;
}

View File

@ -465,6 +465,9 @@ void *signal_handler(void *arg) {
DPRINTF(ERR_LOG,"Got HUP signal. Notifying daap server.\n");
config.reload=1;
break;
default:
DPRINTF(ERR_LOG,"What am I doing here?\n");
break;
}
}
}
@ -649,7 +652,7 @@ int main(int argc, char *argv[]) {
config.reload=0;
DPRINTF(ERR_LOG,"Reloading configuration\n");
}
sleep(10);
sleep(2);
}
DPRINTF(ERR_LOG,"Stopping gracefully\n");