code cleanup

SVN revision: 18702
This commit is contained in:
tsauerbeck 2005-11-29 11:44:51 +00:00 committed by tsauerbeck
parent 6d73fde23a
commit e2aff84f25
1 changed files with 40 additions and 41 deletions

View File

@ -783,7 +783,7 @@ void *
eet_read(Eet_File *ef, char *name, int *size_ret) eet_read(Eet_File *ef, char *name, int *size_ret)
{ {
void *data = NULL; void *data = NULL;
int size = 0, tmp_size; int size = 0;
int hash; int hash;
Eet_File_Node *efn; Eet_File_Node *efn;
@ -844,66 +844,65 @@ eet_read(Eet_File *ef, char *name, int *size_ret)
else else
{ {
void *tmp_data; void *tmp_data;
int free_tmp = 0; int free_tmp = 0, compr_size = efn->size;
uLongf dlen;
/* get size of data in file */
tmp_size = efn->size;
if (!efn->data)
{
tmp_data = malloc(tmp_size);
if (!tmp_data) break;
free_tmp = 1;
}
/* get size uncompressed */ /* get size uncompressed */
size = efn->data_size; size = efn->data_size;
/* allocate data */ /* allocate data */
data = malloc(size); data = malloc(size);
if (data) if (!data) break;
{
uLongf dlen;
/* if we already have the data in ram... copy that */ /* if we already have the data in ram... copy that */
if (efn->data) if (efn->data)
tmp_data = efn->data; tmp_data = efn->data;
/* or get data from disk */ else
else {
tmp_data = malloc(compr_size);
if (!tmp_data)
{ {
/* seek to data location */ free(data);
if (fseek(ef->fp, efn->offset, SEEK_SET) < 0) data = NULL;
{ break;
free(tmp_data);
free(data);
data = NULL;
break;
}
/* read it */
if (fread(tmp_data, tmp_size, 1, ef->fp) != 1)
{
free(tmp_data);
free(data);
data = NULL;
break;
}
} }
/* decompress it */
dlen = size; free_tmp = 1;
if (uncompress((Bytef *)data, &dlen,
tmp_data, (uLongf)tmp_size)) /* get data from disk */
/* seek to data location */
if (fseek(ef->fp, efn->offset, SEEK_SET) < 0)
{ {
if (free_tmp) free(tmp_data); free(tmp_data);
free(data);
data = NULL;
break;
}
/* read it */
if (fread(tmp_data, compr_size, 1, ef->fp) != 1)
{
free(tmp_data);
free(data); free(data);
data = NULL; data = NULL;
break; break;
} }
} }
/* decompress it */
dlen = size;
if (uncompress((Bytef *)data, &dlen,
tmp_data, (uLongf)compr_size))
{
free(data);
data = NULL;
}
if (free_tmp) free(tmp_data); if (free_tmp) free(tmp_data);
break; break;
} }
} }
} }
/* fill in return values */ /* fill in return values */
*size_ret = size; if (size_ret) *size_ret = size;
/* update access time */
return data; return data;
} }