if (!file) return;
if (flist->count >= flist->malloced) {
- flist->malloced += 100;
- flist->files = (struct file_struct *)realloc(flist->files,
- sizeof(flist->files[0])*
- flist->malloced);
- if (!flist->files)
- out_of_memory("send_file_name");
+ if (flist->malloced < 100)
+ flist->malloced += 100;
+ else
+ flist->malloced *= 1.8;
+ flist->files = (struct file_struct *)realloc(flist->files,
+ sizeof(flist->files[0])*
+ flist->malloced);
+ if (!flist->files)
+ out_of_memory("send_file_name");
}
if (strcmp(file->name,"/")) {
int i = flist->count;
if (i >= flist->malloced) {
- flist->malloced += 100;
- flist->files =(struct file_struct *)realloc(flist->files,
- sizeof(flist->files[0])*
- flist->malloced);
- if (!flist->files)
- goto oom;
+ if (flist->malloced < 100)
+ flist->malloced += 100;
+ else
+ flist->malloced *= 1.8;
+ flist->files =(struct file_struct *)realloc(flist->files,
+ sizeof(flist->files[0])*
+ flist->malloced);
+ if (!flist->files)
+ goto oom;
}
receive_file_entry(&flist->files[i],flags,f);
int flist_find(struct file_list *flist,struct file_struct *f)
{
- int low=0,high=flist->count;
+ int low=0,high=flist->count-1;
while (low != high) {
int mid = (low+high)/2;