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. */
|
||||
|
||||
#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_a _Eo *obj, Eo *objid
|
||||
|
||||
#define eo2_do(objid, ...) \
|
||||
do \
|
||||
{ \
|
||||
Eo *_objid_ = objid; \
|
||||
#define eo2_do(objid, ...) \
|
||||
do \
|
||||
{ \
|
||||
Eo *_objid_ = objid; \
|
||||
_Eo *_obj_ = eo2_do_start(_objid_); \
|
||||
do { __VA_ARGS__ ; } while (0); \
|
||||
eo2_do_end(_objid_); \
|
||||
if (!_obj_) break; \
|
||||
do { __VA_ARGS__ ; } while (0); \
|
||||
eo2_do_end(_obj_); \
|
||||
} while (0)
|
||||
|
||||
#define eo2_class_do(clsid, ...) \
|
||||
|
|
|
@ -263,6 +263,12 @@ eo2_do_start(Eo *obj_id)
|
|||
return obj;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
eo2_unref_internal(_Eo *obj)
|
||||
{
|
||||
_eo_unref(obj);
|
||||
}
|
||||
|
||||
EAPI Eina_Bool
|
||||
eo2_call_resolve_internal(_Eo *obj, const Eo_Class *klass_id, Eo_Op op, Eo2_Op_Call_Data *call)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue