add reg_get api for evas objects in order to help fix elm bug.

SVN revision: 69722
This commit is contained in:
Carsten Haitzler 2012-03-29 07:46:30 +00:00
parent f62daabcb9
commit 6a2b539682
4 changed files with 34 additions and 1 deletions

View File

@ -676,3 +676,8 @@
* Remove Software SDL engine.
2012-02-23 Carsten Haitzler (The Rasterman)
* Add evas_object_ref_get() to be able to tell if others ref
an object.

View File

@ -21,6 +21,7 @@ Additions:
* EVAS_OBJECT_POINTER_MODE_NOGRAB_NO_REPEAT_UPDOWN.
* EVAS_GL_OPTIONS_DIRECT.
* evas_object_textblock_style_user_pop/push.
* evas_object_ref_get
Fixes:

View File

@ -3294,6 +3294,25 @@ EAPI void evas_object_ref (Evas_Object *obj);
*/
EAPI void evas_object_unref (Evas_Object *obj);
/**
* Get the object reference count.
*
* @param obj The given Evas object to query
*
* This gets the reference count for an object (normally 0 until it is
* referenced). Values of 1 or greater mean that someone is holding a
* reference to this object that needs to be unreffed before it can be
* deleted.
*
* @see evas_object_ref()
* @see evas_object_unref()
* @see evas_object_del()
*
* @ingroup Evas_Object_Group_Basic
* @since 1.2.0
*/
EAPI int evas_object_ref_get (const Evas_Object *obj);
/**
* Marks the given Evas object for deletion (when Evas will free its

View File

@ -372,7 +372,6 @@ evas_object_ref(Evas_Object *obj)
return;
MAGIC_CHECK_END();
obj->ref++;
if (obj->ref == 0) obj->ref--;
}
EAPI void
@ -386,6 +385,15 @@ evas_object_unref(Evas_Object *obj)
if ((obj->del_ref) && (obj->ref == 0)) evas_object_del(obj);
}
EAPI int
evas_object_ref_get(const Evas_Object *obj)
{
MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ);
return 0;
MAGIC_CHECK_END();
return obj->ref;
}
EAPI void
evas_object_del(Evas_Object *obj)
{