forked from enlightenment/efl
eo2: use internal unref, break if eo2_start returns NULL
This commit is contained in:
parent
473609e1d3
commit
23ae1fc453
|
@ -653,18 +653,21 @@ eo2_class_funcs_set(Eo_Class *klass_id, Eo2_Op_Description *op_descs, int n);
|
||||||
|
|
||||||
/* FIXME: Don't use this unref, use an internal one. Reduce id resolution. */
|
/* FIXME: Don't use this unref, use an internal one. Reduce id resolution. */
|
||||||
|
|
||||||
#define eo2_do_end(obj) eo_unref(obj)
|
EAPI void eo2_unref_internal(_Eo *obj);
|
||||||
|
|
||||||
|
#define eo2_do_end(obj) eo2_unref_internal(obj)
|
||||||
|
|
||||||
#define eo2_o _obj_, _objid_
|
#define eo2_o _obj_, _objid_
|
||||||
#define eo2_a _Eo *obj, Eo *objid
|
#define eo2_a _Eo *obj, Eo *objid
|
||||||
|
|
||||||
#define eo2_do(objid, ...) \
|
#define eo2_do(objid, ...) \
|
||||||
do \
|
do \
|
||||||
{ \
|
{ \
|
||||||
Eo *_objid_ = objid; \
|
Eo *_objid_ = objid; \
|
||||||
_Eo *_obj_ = eo2_do_start(_objid_); \
|
_Eo *_obj_ = eo2_do_start(_objid_); \
|
||||||
do { __VA_ARGS__ ; } while (0); \
|
if (!_obj_) break; \
|
||||||
eo2_do_end(_objid_); \
|
do { __VA_ARGS__ ; } while (0); \
|
||||||
|
eo2_do_end(_obj_); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define eo2_class_do(clsid, ...) \
|
#define eo2_class_do(clsid, ...) \
|
||||||
|
|
|
@ -263,6 +263,12 @@ eo2_do_start(Eo *obj_id)
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
eo2_unref_internal(_Eo *obj)
|
||||||
|
{
|
||||||
|
_eo_unref(obj);
|
||||||
|
}
|
||||||
|
|
||||||
EAPI Eina_Bool
|
EAPI Eina_Bool
|
||||||
eo2_call_resolve_internal(_Eo *obj, const Eo_Class *klass_id, Eo_Op op, Eo2_Op_Call_Data *call)
|
eo2_call_resolve_internal(_Eo *obj, const Eo_Class *klass_id, Eo_Op op, Eo2_Op_Call_Data *call)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue