diff --git a/src/lib/eina/eina_file.c b/src/lib/eina/eina_file.c index ae68287ccd..dd2d1647a8 100644 --- a/src/lib/eina/eina_file.c +++ b/src/lib/eina/eina_file.c @@ -509,7 +509,7 @@ eina_file_mmap_faulty(void *addr, long page_size) eina_lock_take(&f->lock); - if (f->global_map) + if (f->global_map != MAP_FAILED) { if ((unsigned char *) addr < (((unsigned char *)f->global_map) + f->length) && (((unsigned char *) addr) + page_size) >= (unsigned char *) f->global_map) diff --git a/src/lib/eina/eina_file_common.c b/src/lib/eina/eina_file_common.c index a154b1efb8..5c59b86d26 100644 --- a/src/lib/eina/eina_file_common.c +++ b/src/lib/eina/eina_file_common.c @@ -48,6 +48,11 @@ # include #endif +#ifdef MAP_FAILED +# undef MAP_FAILED +#endif +#define MAP_FAILED ((void *)-1) + Eina_Hash *_eina_file_cache = NULL; Eina_Lock _eina_file_lock_cache; @@ -281,7 +286,7 @@ eina_file_flush(Eina_File *file, unsigned long int length) Eina_List *l; // File size changed - if (file->global_map) + if (file->global_map != MAP_FAILED) { // Forget global map tmp = malloc(sizeof (Eina_File_Map)); @@ -295,7 +300,7 @@ eina_file_flush(Eina_File *file, unsigned long int length) file->dead_map = eina_list_append(file->dead_map, tmp); } - file->global_map = NULL; + file->global_map = MAP_FAILED; file->refcount = 0; }