eet - fix signature alignment and position

This commit is contained in:
Carsten Haitzler 2015-10-07 14:32:37 +09:00
parent b031bbee9b
commit 7b018a9740
1 changed files with 7 additions and 10 deletions

View File

@ -481,22 +481,22 @@ eet_flush2(Eet_File *ef)
/* write data */
data_offset = orig_data_offset;
pad = 0;
for (i = 0; i < num; i++)
{
for (efn = ef->header->directory->nodes[i]; efn; efn = efn->next)
{
if (fwrite(efn->data, efn->size, 1, fp) != 1)
goto write_error;
data_offset += efn->size;
pad = (((data_offset + (ALIGN - 1)) / ALIGN) * ALIGN) - data_offset;
if (pad > 0)
{
data_offset += pad;
if (fwrite(zeros, pad, 1, fp) != 1)
goto write_error;
}
if (fwrite(efn->data, efn->size, 1, fp) != 1)
goto write_error;
data_offset += efn->size;
pad = (((data_offset + (ALIGN - 1)) / ALIGN) * ALIGN) - data_offset;
}
}
@ -882,10 +882,7 @@ eet_internal_read2(Eet_File *ef)
/* compute the possible position of a signature */
if (signature_base_offset < (efn->offset + efn->size))
{
signature_base_offset = efn->offset +
(((efn->size + (ALIGN - 1)) / ALIGN) * ALIGN);
}
signature_base_offset = efn->offset + efn->size;
}
ef->ed = NULL;