add reg_get api for evas objects in order to help fix elm bug.
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 29 Mar 2012 07:46:30 +0000 (07:46 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 29 Mar 2012 07:46:30 +0000 (07:46 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@69722 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

ChangeLog
NEWS
src/lib/Evas.h
src/lib/canvas/evas_object_main.c

index b930c08..bc4ec30 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
 
        * 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.
+
diff --git a/NEWS b/NEWS
index 15ef377..356b585 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -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:
 
index 67d3018..3ab7d4b 100644 (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
index 90b6158..48e97de 100644 (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)
 {