kuuko pushed a commit to branch master.

http://git.enlightenment.org/bindings/python/python-efl.git/commit/?id=ea2d5bd689226dc2a8c5cb2d0ca28ec0913bffa7

commit ea2d5bd689226dc2a8c5cb2d0ca28ec0913bffa7
Author: Kai Huuhko <kai.huu...@gmail.com>
Date:   Fri Mar 13 13:10:22 2015 +0200

    Evas.SmartObject: Optimize Smart calls
---
 efl/evas/efl.evas_object_smart.pxi | 145 +++++++++++++++++++------------------
 1 file changed, 75 insertions(+), 70 deletions(-)

diff --git a/efl/evas/efl.evas_object_smart.pxi 
b/efl/evas/efl.evas_object_smart.pxi
index 998a6a2..460f3b7 100644
--- a/efl/evas/efl.evas_object_smart.pxi
+++ b/efl/evas/efl.evas_object_smart.pxi
@@ -30,7 +30,7 @@ cdef void _smart_object_delete(Evas_Object *o) with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
     if tmp == NULL:
@@ -38,12 +38,15 @@ cdef void _smart_object_delete(Evas_Object *o) with gil:
         return
     cls = <Smart>tmp
 
+    if "delete" not in cls.__class__.__dict__:
+        return
+
     eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
     if tmp == NULL:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
     try:
         cls.delete(obj)
@@ -55,7 +58,7 @@ cdef void _smart_object_move(Evas_Object *o, Evas_Coord x, 
Evas_Coord y) with gi
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
     if tmp == NULL:
@@ -63,25 +66,27 @@ cdef void _smart_object_move(Evas_Object *o, Evas_Coord x, 
Evas_Coord y) with gi
         return
     cls = <Smart>tmp
 
+    if "move" not in cls.__class__.__dict__:
+        return
+
     eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
     if tmp == NULL:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
-    if cls.move is not None:
-        try:
-            cls.move(obj, x, y)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.move(obj, x, y)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_resize(Evas_Object *o, Evas_Coord w, Evas_Coord h) 
with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
     if tmp == NULL:
@@ -94,20 +99,19 @@ cdef void _smart_object_resize(Evas_Object *o, Evas_Coord 
w, Evas_Coord h) with
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
-    if cls.resize is not None:
-        try:
-            cls.resize(obj, w, h)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.resize(obj, w, h)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_show(Evas_Object *o) with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
     if tmp == NULL:
@@ -120,20 +124,19 @@ cdef void _smart_object_show(Evas_Object *o) with gil:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
-    if cls.show is not None:
-        try:
-            cls.show(obj)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.show(obj)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_hide(Evas_Object *o) with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
     if tmp == NULL:
@@ -146,20 +149,19 @@ cdef void _smart_object_hide(Evas_Object *o) with gil:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
-    if cls.hide is not None:
-        try:
-            cls.hide(obj)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.hide(obj)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_color_set(Evas_Object *o, int r, int g, int b, int a) 
with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
     if tmp == NULL:
@@ -172,20 +174,19 @@ cdef void _smart_object_color_set(Evas_Object *o, int r, 
int g, int b, int a) wi
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
-    if cls.color_set is not None:
-        try:
-            cls.color_set(obj, r, g, b, a)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.color_set(obj, r, g, b, a)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_clip_set(Evas_Object *o, Evas_Object *clip) with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
         Object other
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
@@ -199,22 +200,21 @@ cdef void _smart_object_clip_set(Evas_Object *o, 
Evas_Object *clip) with gil:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
     other = object_from_instance(clip)
 
-    if cls.clip_set is not None:
-        try:
-            cls.clip_set(obj, other)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.clip_set(obj, other)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_clip_unset(Evas_Object *o) with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
     if tmp == NULL:
@@ -227,20 +227,19 @@ cdef void _smart_object_clip_unset(Evas_Object *o) with 
gil:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
-    if cls.clip_unset is not None:
-        try:
-            cls.clip_unset(obj)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.clip_unset(obj)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_calculate(Evas_Object *o) with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
     if tmp == NULL:
@@ -248,25 +247,27 @@ cdef void _smart_object_calculate(Evas_Object *o) with 
gil:
         return
     cls = <Smart>tmp
 
+    if "calculate" not in cls.__class__.__dict__:
+        return
+
     eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
     if tmp == NULL:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
-    if cls.calculate is not None:
-        try:
-            cls.calculate(obj)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.calculate(obj)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_member_add(Evas_Object *o, Evas_Object *clip) with gil:
     cdef:
         void *tmp
         Smart cls
-        Eo obj
+        SmartObject obj
         Object other
 
     tmp = evas_smart_data_get(evas_object_smart_smart_get(o))
@@ -275,20 +276,22 @@ cdef void _smart_object_member_add(Evas_Object *o, 
Evas_Object *clip) with gil:
         return
     cls = <Smart>tmp
 
+    if "member_add" not in cls.__class__.__dict__:
+        return
+
     eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
     if tmp == NULL:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
         obj = None
     else:
-        obj = <Eo>tmp
+        obj = <SmartObject>tmp
 
     other = object_from_instance(clip)
 
-    if cls.member_add is not None:
-        try:
-            cls.member_add(obj, other)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.member_add(obj, other)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef void _smart_object_member_del(Evas_Object *o, Evas_Object *clip) with gil:
@@ -304,6 +307,9 @@ cdef void _smart_object_member_del(Evas_Object *o, 
Evas_Object *clip) with gil:
         return
     cls = <Smart>tmp
 
+    if "member_del" not in cls.__class__.__dict__:
+        return
+
     eo_do_ret(o, tmp, eo_key_data_get("python-eo"))
     if tmp == NULL:
         EINA_LOG_DOM_WARN(PY_EFL_EVAS_LOG_DOMAIN, "obj is NULL!", NULL)
@@ -313,11 +319,10 @@ cdef void _smart_object_member_del(Evas_Object *o, 
Evas_Object *clip) with gil:
 
     other = object_from_instance(clip)
 
-    if cls.member_del is not None:
-        try:
-            cls.member_del(obj, other)
-        except Exception:
-            traceback.print_exc()
+    try:
+        cls.member_del(obj, other)
+    except Exception:
+        traceback.print_exc()
 
 
 cdef class _SmartCb:

-- 


Reply via email to