Enlightenment CVS committal
Author : cedric
Project : e17
Module : libs/eet
Dir : e17/libs/eet/src/lib
Modified Files:
eet_lib.c
Log Message:
Add some test around efn->offset and set it properly in all case.
===================================================================
RCS file: /cvs/e/e17/libs/eet/src/lib/eet_lib.c,v
retrieving revision 1.103
retrieving revision 1.104
diff -u -3 -r1.103 -r1.104
--- eet_lib.c 16 May 2008 10:00:54 -0000 1.103
+++ eet_lib.c 16 May 2008 14:03:11 -0000 1.104
@@ -1482,6 +1482,9 @@
if (!efn)
return NULL;
+ if (efn->offset < 0 && efn->data == NULL)
+ return NULL;
+
/* get size (uncompressed, if compressed at all) */
size = efn->data_size;
@@ -1590,6 +1593,7 @@
efn->size = data_size;
efn->data_size = size;
efn->data = data2;
+ efn->offset = -1;
exists_already = 1;
break;
}
@@ -1608,7 +1612,7 @@
efn->next = ef->header->directory->nodes[hash];
ef->header->directory->nodes[hash] = efn;
- efn->offset = 0;
+ efn->offset = -1;
efn->compression = !!compress;
efn->size = data_size;
efn->data_size = size;
@@ -1795,6 +1799,8 @@
static int
read_data_from_disk(Eet_File *ef, Eet_File_Node *efn, void *buf, int len)
{
+ if (efn->offset < 0) return 0;
+
if (ef->data)
{
if ((efn->offset + len) > ef->data_size) return 0;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs