forked from enlightenment/efl
Evas Smart: add ability to get usage count
SVN revision: 59341
This commit is contained in:
parent
6162859727
commit
3761d8ecf8
|
@ -327,3 +327,9 @@
|
||||||
|
|
||||||
* Textblock: Added evas_textblock_node_format_list_get. This is very
|
* Textblock: Added evas_textblock_node_format_list_get. This is very
|
||||||
useful for edje_entry that uses anchors in the text.
|
useful for edje_entry that uses anchors in the text.
|
||||||
|
|
||||||
|
2011-05-12 Carsten Haitzler (The Rasterman)
|
||||||
|
|
||||||
|
* Add smart instance usage count get function for ability to free
|
||||||
|
data from memory from a smart class if needed.
|
||||||
|
|
||||||
|
|
|
@ -6708,6 +6708,28 @@ EAPI const Evas_Smart_Cb_Description *evas_smart_callback_description_find(const
|
||||||
* using regular memcpy().
|
* using regular memcpy().
|
||||||
*/
|
*/
|
||||||
EAPI Eina_Bool evas_smart_class_inherit_full (Evas_Smart_Class *sc, const Evas_Smart_Class *parent_sc, unsigned int parent_sc_size) EINA_ARG_NONNULL(1, 2);
|
EAPI Eina_Bool evas_smart_class_inherit_full (Evas_Smart_Class *sc, const Evas_Smart_Class *parent_sc, unsigned int parent_sc_size) EINA_ARG_NONNULL(1, 2);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of users of the smart instance
|
||||||
|
*
|
||||||
|
* @param s The Evas_Smart to get the usage count of
|
||||||
|
* @return The number of uses of the smart instance
|
||||||
|
*
|
||||||
|
* This function tells you how many more uses of the smart instance are in
|
||||||
|
* existance. This should be used before freeing/clearing any of the
|
||||||
|
* Evas_Smart_Class that was used to create the smart instance. The smart
|
||||||
|
* instance will refer to data in the Evas_Smart_Class used to create it and
|
||||||
|
* thus you cannot remove the original data until all users of it are gone.
|
||||||
|
* When the usage count goes to 0, you can evas_smart_free() the smart
|
||||||
|
* instance @p s and remove from memory any of the Evas_Smart_Class that
|
||||||
|
* was used to create the smart instance, if you desire. Removing it from
|
||||||
|
* memory without doing this will cause problems (crashes, undefined
|
||||||
|
* behavior etc. etc.), so either never remove the original
|
||||||
|
* Evas_Smart_Class data from memory (have it be a constant structure and
|
||||||
|
* data), or use this API call and be very careful.
|
||||||
|
*/
|
||||||
|
EAPI int evas_smart_usage_get(const Evas_Smart *s);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @def evas_smart_class_inherit
|
* @def evas_smart_class_inherit
|
||||||
* Easy to use version of evas_smart_class_inherit_full().
|
* Easy to use version of evas_smart_class_inherit_full().
|
||||||
|
|
|
@ -112,6 +112,16 @@ evas_smart_class_inherit_full(Evas_Smart_Class *sc, const Evas_Smart_Class *pare
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI int
|
||||||
|
evas_smart_usage_get(const Evas_Smart *s)
|
||||||
|
{
|
||||||
|
MAGIC_CHECK(s, Evas_Smart, MAGIC_SMART);
|
||||||
|
return 0;
|
||||||
|
MAGIC_CHECK_END();
|
||||||
|
return s->usage;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* internal funcs */
|
/* internal funcs */
|
||||||
void
|
void
|
||||||
evas_object_smart_use(Evas_Smart *s)
|
evas_object_smart_use(Evas_Smart *s)
|
||||||
|
|
Loading…
Reference in New Issue