Eina_File_Iterator *it;
size_t length;
- if (!dir)
- return NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
length = strlen(dir);
if (length < 1)
Eina_File_Direct_Iterator *it;
size_t length;
- if (!dir)
- return NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
length = strlen(dir);
if (length < 1)
Eina_File_Direct_Iterator *it;
size_t length;
- if (!dir)
- return NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(dir, NULL);
length = strlen(dir);
if (length < 1)
Eina_Xattr_Iterator *it;
ssize_t length;
-#ifdef HAVE_XATTR
- if (!file)
- return NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
+#ifdef HAVE_XATTR
length = listxattr(file, NULL, 0);
if (length <= 0) return NULL;
void *ret = NULL;
ssize_t tmp;
- if (!size || !file || !attribute) return NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(attribute, NULL);
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(!size, NULL);
+
*size = getxattr(file, attribute, NULL, 0);
/* Size should be less than 2MB (already huge in my opinion) */
if (!(*size > 0 && *size < 2 * 1024 * 1024))
{
int iflags;
- if (!file || !attribute || !data || length <= 0 || length > 2 * 1024 * 1024)
- return EINA_FALSE;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(file, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(attribute, EINA_FALSE);
+ EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE);
+ EINA_SAFETY_ON_TRUE_RETURN_VAL(!(length > 0 && length < 2 * 1024 * 1024), EINA_FALSE);
switch (flags)
{
int fd;
int flags;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(filename, NULL);
+
/*
FIXME: always open absolute path
(need to fix filename according to current directory)
EAPI void
eina_file_close(Eina_File *file)
{
- if (!file) return;
+ EINA_SAFETY_ON_NULL_RETURN(file);
+
eina_lock_take(&file->lock);
file->refcount--;
eina_lock_release(&file->lock);
EAPI size_t
eina_file_size_get(Eina_File *file)
{
- if (!file) return 0;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0);
return file->length;
}
EAPI time_t
eina_file_mtime_get(Eina_File *file)
{
- if (!file) return 0;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(file, 0);
return file->mtime;
}
EAPI const char *
eina_file_filename_get(Eina_File *file)
{
- if (!file) return NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
return file->filename;
}
int flags = MAP_SHARED;
void *ret = NULL;
+ EINA_SAFETY_ON_NULL_RETURN_VAL(file, NULL);
+
// bsd people will lack this feature
#ifdef MAP_POPULATE
if (rule == EINA_FILE_POPULATE) flags |= MAP_POPULATE;
EAPI void
eina_file_map_free(Eina_File *file, void *map)
{
+ EINA_SAFETY_ON_NULL_RETURN(file);
+
eina_lock_take(&file->lock);
if (file->global_map == map)