forked from enlightenment/efl
eina: handle gracefully eina_*_free with NULL.
Patch by Raphael Kubo da Costa <rakuco@freebsd.org>. SVN revision: 73320
This commit is contained in:
parent
60ded53507
commit
d8ad05920b
|
@ -305,8 +305,12 @@
|
||||||
|
|
||||||
2012-07-01 Vincent Torri
|
2012-07-01 Vincent Torri
|
||||||
|
|
||||||
* remove --enable-coverage from configure options,
|
* Remove --enable-coverage from configure options,
|
||||||
|
|
||||||
2012-07-04 Vincent Torri
|
2012-07-04 Vincent Torri
|
||||||
|
|
||||||
* implement eina_file_map_lines() on Windows
|
* Implement eina_file_map_lines() on Windows.
|
||||||
|
|
||||||
|
2012-07-05 Raphael Kubo da Costa
|
||||||
|
|
||||||
|
* Handle NULL in all eina_*_free function.
|
||||||
|
|
|
@ -15,7 +15,8 @@ Fixes:
|
||||||
* Portability issue with Eina_Value test suite when unsigned where not promoted to
|
* Portability issue with Eina_Value test suite when unsigned where not promoted to
|
||||||
unsigned long (case on Itanium).
|
unsigned long (case on Itanium).
|
||||||
* Fix issue in the XML parser when a tag was in a comment or a CDATA.
|
* Fix issue in the XML parser when a tag was in a comment or a CDATA.
|
||||||
* Implement eina_file_map_lines() on Windows
|
* Implement eina_file_map_lines() on Windows.
|
||||||
|
* Handle NULL in all eina_*_free function.
|
||||||
|
|
||||||
Removal:
|
Removal:
|
||||||
* configure options: --disable-posix-threads, --disable-win32-threads,
|
* configure options: --disable-posix-threads, --disable-win32-threads,
|
||||||
|
|
|
@ -191,7 +191,7 @@ struct _Eina_Accessor
|
||||||
*
|
*
|
||||||
* This function frees @p accessor if it is not @c NULL;
|
* This function frees @p accessor if it is not @c NULL;
|
||||||
*/
|
*/
|
||||||
EAPI void eina_accessor_free(Eina_Accessor *accessor) EINA_ARG_NONNULL(1);
|
EAPI void eina_accessor_free(Eina_Accessor *accessor);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Retrieve the data of an accessor at a given position.
|
* @brief Retrieve the data of an accessor at a given position.
|
||||||
|
@ -241,7 +241,7 @@ EAPI void eina_accessor_over(Eina_Accessor *accessor,
|
||||||
Eina_Each_Cb cb,
|
Eina_Each_Cb cb,
|
||||||
unsigned int start,
|
unsigned int start,
|
||||||
unsigned int end,
|
unsigned int end,
|
||||||
const void *fdata) EINA_ARG_NONNULL(1, 2);
|
const void *fdata) EINA_ARG_NONNULL(2);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Lock the container of the accessor.
|
* @brief Lock the container of the accessor.
|
||||||
|
|
|
@ -196,7 +196,7 @@ struct _Eina_Iterator
|
||||||
*
|
*
|
||||||
* This function frees @p iterator if it is not @c NULL;
|
* This function frees @p iterator if it is not @c NULL;
|
||||||
*/
|
*/
|
||||||
EAPI void eina_iterator_free(Eina_Iterator *iterator) EINA_ARG_NONNULL(1);
|
EAPI void eina_iterator_free(Eina_Iterator *iterator);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -223,7 +223,7 @@ EAPI void *eina_iterator_container_get(Eina_Iterator *iterator) EINA_ARG_NON
|
||||||
* returned, otherwise #EINA_TRUE is returned.
|
* returned, otherwise #EINA_TRUE is returned.
|
||||||
*/
|
*/
|
||||||
EAPI Eina_Bool eina_iterator_next(Eina_Iterator *iterator,
|
EAPI Eina_Bool eina_iterator_next(Eina_Iterator *iterator,
|
||||||
void **data) EINA_ARG_NONNULL(1, 2) EINA_WARN_UNUSED_RESULT;
|
void **data) EINA_ARG_NONNULL(2) EINA_WARN_UNUSED_RESULT;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -242,7 +242,7 @@ EAPI Eina_Bool eina_iterator_next(Eina_Iterator *iterator,
|
||||||
*/
|
*/
|
||||||
EAPI void eina_iterator_foreach(Eina_Iterator *iterator,
|
EAPI void eina_iterator_foreach(Eina_Iterator *iterator,
|
||||||
Eina_Each_Cb callback,
|
Eina_Each_Cb callback,
|
||||||
const void *fdata) EINA_ARG_NONNULL(1, 2);
|
const void *fdata) EINA_ARG_NONNULL(2);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -385,7 +385,7 @@ EAPI Eina_Model *eina_model_new(const Eina_Model_Type *type);
|
||||||
* @see eina_model_new()
|
* @see eina_model_new()
|
||||||
* @since 1.2
|
* @since 1.2
|
||||||
*/
|
*/
|
||||||
EAPI void eina_model_del(Eina_Model *model) EINA_ARG_NONNULL(1);
|
EAPI void eina_model_del(Eina_Model *model);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Returns the type of @a model.
|
* @brief Returns the type of @a model.
|
||||||
|
|
|
@ -95,8 +95,10 @@ eina_accessor_shutdown(void)
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_accessor_free(Eina_Accessor *accessor)
|
eina_accessor_free(Eina_Accessor *accessor)
|
||||||
{
|
{
|
||||||
|
if (!accessor)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_ACCESSOR(accessor);
|
EINA_MAGIC_CHECK_ACCESSOR(accessor);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(accessor);
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN(accessor->free);
|
EINA_SAFETY_ON_NULL_RETURN(accessor->free);
|
||||||
accessor->free(accessor);
|
accessor->free(accessor);
|
||||||
}
|
}
|
||||||
|
@ -133,8 +135,9 @@ eina_accessor_over(Eina_Accessor *accessor,
|
||||||
void *data;
|
void *data;
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
|
||||||
|
if (!accessor) return ;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_ACCESSOR(accessor);
|
EINA_MAGIC_CHECK_ACCESSOR(accessor);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(accessor);
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN(accessor->get_container);
|
EINA_SAFETY_ON_NULL_RETURN(accessor->get_container);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(accessor->get_at);
|
EINA_SAFETY_ON_NULL_RETURN(accessor->get_at);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(cb);
|
EINA_SAFETY_ON_NULL_RETURN(cb);
|
||||||
|
|
|
@ -485,12 +485,9 @@ _eina_hash_del_by_key(Eina_Hash *hash, const void *key, const void *data)
|
||||||
{
|
{
|
||||||
int key_length, key_hash;
|
int key_length, key_hash;
|
||||||
|
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(hash, EINA_FALSE);
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(key, EINA_FALSE);
|
||||||
EINA_MAGIC_CHECK_HASH(hash);
|
EINA_MAGIC_CHECK_HASH(hash);
|
||||||
if (!hash)
|
|
||||||
return EINA_FALSE;
|
|
||||||
|
|
||||||
if (!key)
|
|
||||||
return EINA_FALSE;
|
|
||||||
|
|
||||||
if (!hash->buckets)
|
if (!hash->buckets)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
|
|
@ -355,6 +355,9 @@ eina_inarray_new(unsigned int member_size, unsigned int step)
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_inarray_free(Eina_Inarray *array)
|
eina_inarray_free(Eina_Inarray *array)
|
||||||
{
|
{
|
||||||
|
if (!inarray)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_INARRAY(array);
|
EINA_MAGIC_CHECK_INARRAY(array);
|
||||||
free(array->members);
|
free(array->members);
|
||||||
free(array);
|
free(array);
|
||||||
|
|
|
@ -95,8 +95,10 @@ eina_iterator_shutdown(void)
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_iterator_free(Eina_Iterator *iterator)
|
eina_iterator_free(Eina_Iterator *iterator)
|
||||||
{
|
{
|
||||||
|
if (!iterator)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_ITERATOR(iterator);
|
EINA_MAGIC_CHECK_ITERATOR(iterator);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(iterator);
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN(iterator->free);
|
EINA_SAFETY_ON_NULL_RETURN(iterator->free);
|
||||||
iterator->free(iterator);
|
iterator->free(iterator);
|
||||||
}
|
}
|
||||||
|
@ -117,7 +119,6 @@ eina_iterator_next(Eina_Iterator *iterator, void **data)
|
||||||
return EINA_FALSE;
|
return EINA_FALSE;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_ITERATOR(iterator);
|
EINA_MAGIC_CHECK_ITERATOR(iterator);
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(iterator, EINA_FALSE);
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(iterator->next, EINA_FALSE);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(iterator->next, EINA_FALSE);
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE);
|
EINA_SAFETY_ON_NULL_RETURN_VAL(data, EINA_FALSE);
|
||||||
return iterator->next(iterator, data);
|
return iterator->next(iterator, data);
|
||||||
|
@ -131,8 +132,10 @@ eina_iterator_foreach(Eina_Iterator *iterator,
|
||||||
const void *container;
|
const void *container;
|
||||||
void *data;
|
void *data;
|
||||||
|
|
||||||
|
if (!iterator)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_ITERATOR(iterator);
|
EINA_MAGIC_CHECK_ITERATOR(iterator);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(iterator);
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN(iterator->get_container);
|
EINA_SAFETY_ON_NULL_RETURN(iterator->get_container);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(iterator->next);
|
EINA_SAFETY_ON_NULL_RETURN(iterator->next);
|
||||||
EINA_SAFETY_ON_NULL_RETURN(cb);
|
EINA_SAFETY_ON_NULL_RETURN(cb);
|
||||||
|
|
|
@ -971,6 +971,10 @@ eina_matrixsparse_free(Eina_Matrixsparse *m)
|
||||||
void *user_data;
|
void *user_data;
|
||||||
|
|
||||||
Eina_Matrixsparse_Row *r;
|
Eina_Matrixsparse_Row *r;
|
||||||
|
|
||||||
|
if (!m)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_MATRIXSPARSE(m);
|
EINA_MAGIC_CHECK_MATRIXSPARSE(m);
|
||||||
|
|
||||||
free_func = m->free.func;
|
free_func = m->free.func;
|
||||||
|
|
|
@ -3527,6 +3527,9 @@ _eina_model_unref(Eina_Model *model)
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_model_del(Eina_Model *model)
|
eina_model_del(Eina_Model *model)
|
||||||
{
|
{
|
||||||
|
if (!model)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MODEL_INSTANCE_CHECK(model);
|
EINA_MODEL_INSTANCE_CHECK(model);
|
||||||
_eina_model_del(model);
|
_eina_model_del(model);
|
||||||
_eina_model_unref(model);
|
_eina_model_unref(model);
|
||||||
|
|
|
@ -585,6 +585,9 @@ eina_simple_xml_attribute_new(Eina_Simple_XML_Node_Tag *parent, const char *key,
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_simple_xml_attribute_free(Eina_Simple_XML_Attribute *attr)
|
eina_simple_xml_attribute_free(Eina_Simple_XML_Attribute *attr)
|
||||||
{
|
{
|
||||||
|
if (!attr)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_ATTRIBUTE(attr);
|
EINA_MAGIC_CHECK_ATTRIBUTE(attr);
|
||||||
|
|
||||||
if (attr->parent)
|
if (attr->parent)
|
||||||
|
@ -669,6 +672,9 @@ _eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag)
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag)
|
eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag)
|
||||||
{
|
{
|
||||||
|
if (!tag)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_TAG(&tag->base);
|
EINA_MAGIC_CHECK_TAG(&tag->base);
|
||||||
if (tag->base.type != EINA_SIMPLE_XML_NODE_TAG)
|
if (tag->base.type != EINA_SIMPLE_XML_NODE_TAG)
|
||||||
{
|
{
|
||||||
|
@ -716,6 +722,9 @@ eina_simple_xml_node_data_new(Eina_Simple_XML_Node_Tag *parent, const char *cont
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node)
|
eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node)
|
||||||
{
|
{
|
||||||
|
if (!node)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_DATA(&node->base);
|
EINA_MAGIC_CHECK_DATA(&node->base);
|
||||||
if (node->base.type != EINA_SIMPLE_XML_NODE_DATA)
|
if (node->base.type != EINA_SIMPLE_XML_NODE_DATA)
|
||||||
{
|
{
|
||||||
|
@ -735,6 +744,9 @@ eina_simple_xml_node_cdata_new(Eina_Simple_XML_Node_Tag *parent, const char *con
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node)
|
eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node)
|
||||||
{
|
{
|
||||||
|
if (!node)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_DATA(&node->base);
|
EINA_MAGIC_CHECK_DATA(&node->base);
|
||||||
if (node->base.type != EINA_SIMPLE_XML_NODE_CDATA)
|
if (node->base.type != EINA_SIMPLE_XML_NODE_CDATA)
|
||||||
{
|
{
|
||||||
|
@ -754,6 +766,9 @@ eina_simple_xml_node_processing_new(Eina_Simple_XML_Node_Tag *parent, const char
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node)
|
eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node)
|
||||||
{
|
{
|
||||||
|
if (!node)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_DATA(&node->base);
|
EINA_MAGIC_CHECK_DATA(&node->base);
|
||||||
if (node->base.type != EINA_SIMPLE_XML_NODE_PROCESSING)
|
if (node->base.type != EINA_SIMPLE_XML_NODE_PROCESSING)
|
||||||
{
|
{
|
||||||
|
@ -773,6 +788,9 @@ eina_simple_xml_node_doctype_new(Eina_Simple_XML_Node_Tag *parent, const char *c
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node)
|
eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node)
|
||||||
{
|
{
|
||||||
|
if (!node)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_DATA(&node->base);
|
EINA_MAGIC_CHECK_DATA(&node->base);
|
||||||
if (node->base.type != EINA_SIMPLE_XML_NODE_DOCTYPE)
|
if (node->base.type != EINA_SIMPLE_XML_NODE_DOCTYPE)
|
||||||
{
|
{
|
||||||
|
@ -792,6 +810,9 @@ eina_simple_xml_node_comment_new(Eina_Simple_XML_Node_Tag *parent, const char *c
|
||||||
EAPI void
|
EAPI void
|
||||||
eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node)
|
eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node)
|
||||||
{
|
{
|
||||||
|
if (!node)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_DATA(&node->base);
|
EINA_MAGIC_CHECK_DATA(&node->base);
|
||||||
if (node->base.type != EINA_SIMPLE_XML_NODE_COMMENT)
|
if (node->base.type != EINA_SIMPLE_XML_NODE_COMMENT)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1127,6 +1127,9 @@ EAPI Eina_Tiler *eina_tiler_new(int w, int h)
|
||||||
|
|
||||||
EAPI void eina_tiler_free(Eina_Tiler *t)
|
EAPI void eina_tiler_free(Eina_Tiler *t)
|
||||||
{
|
{
|
||||||
|
if (!t)
|
||||||
|
return;
|
||||||
|
|
||||||
EINA_MAGIC_CHECK_TILER(t);
|
EINA_MAGIC_CHECK_TILER(t);
|
||||||
_splitter_del(t);
|
_splitter_del(t);
|
||||||
free(t);
|
free(t);
|
||||||
|
|
Loading…
Reference in New Issue