typedef void (*Eio_Progress_Cb)(void *data, Eio_File *handler, const Eio_Progress *info);
typedef void (*Eio_Open_Cb)(void *data, Eio_File *handler, Eina_File *file);
-typedef Eina_Bool (*Eio_Filter_Map_Cb)(void *data, Eio_File *handler, void *map);
-typedef void (*Eio_Map_Cb)(void *data, Eio_File *handler, void *map);
+ typedef Eina_Bool (*Eio_Filter_Map_Cb)(void *data, Eio_File *handler, void *map, size_t length);
+ typedef void (*Eio_Map_Cb)(void *data, Eio_File *handler, void *map, size_t length);
typedef void (*Eio_Done_Data_Cb)(void *data, Eio_File *handler, const char *xattr_data, unsigned int xattr_size);
typedef void (*Eio_Done_String_Cb)(void *data, Eio_File *handler, const char *xattr_string);
{
if (!map->filter_cb((void*) map->common.data,
&map->common,
- map->result))
+ map->result,
+ map->length))
{
eina_file_map_free(map->common.container, map->result);
map->result = NULL;
{
if (!map->filter_cb((void*) map->common.data,
&map->common,
- map->result))
+ map->result,
+ map->length))
{
eina_file_map_free(map->common.container, map->result);
map->result = NULL;
{
Eio_File_Map_Rule *map = data;
- map->map_cb((void*) map->common.data, &map->common, map->result);
+ map->map_cb((void*) map->common.data, &map->common, map->result, map->length);
free(map);
}
map->map_cb = map_cb;
map->rule = rule;
map->result = NULL;
+ map->length = eina_file_size_get(f);
if (!eio_file_set(&map->common,
NULL,