forked from enlightenment/efl
parent
474c668038
commit
fd2054d821
|
@ -907,6 +907,21 @@ enum {
|
|||
*/
|
||||
#define eo_wref_del(wref) EO_BASE_ID(EO_BASE_SUB_ID_WREF_DEL), EO_TYPECHECK(Eo **, wref)
|
||||
|
||||
/**
|
||||
* @def eo_wref_del_safe
|
||||
* @brief Delete the weak reference passed.
|
||||
* @param wref the weak reference to free.
|
||||
*
|
||||
* Same as eo_wref_del(), with the different that it's not called from eobj_do()
|
||||
* so you don't need to check if *wref is not NULL.
|
||||
*
|
||||
* @see #eo_wref_del
|
||||
*/
|
||||
#define eo_wref_del_safe(wref) \
|
||||
do { \
|
||||
if (*wref) eo_do(*wref, eo_wref_del(wref)); \
|
||||
} while (0)
|
||||
|
||||
/**
|
||||
* @var _EO_EV_CALLBACK_ADD
|
||||
* see EO_EV_CALLBACK_ADD
|
||||
|
|
|
@ -98,7 +98,7 @@ START_TEST(eo_weak_reference)
|
|||
eo_do(obj, eo_wref_add(&wref));
|
||||
eo_do(obj2, eo_wref_del(&wref));
|
||||
fail_if(!wref);
|
||||
eo_do(obj, eo_wref_del(&wref));
|
||||
eo_wref_del_safe(&wref);
|
||||
fail_if(wref);
|
||||
|
||||
eo_unref(obj);
|
||||
|
|
Loading…
Reference in New Issue