Eo: Fixed a bug in wref del.

SVN revision: 70572
This commit is contained in:
Tom Hacohen 2012-05-01 11:25:00 +00:00
parent 6d15044bd4
commit 474c668038
2 changed files with 10 additions and 0 deletions

View File

@ -146,6 +146,7 @@ _wref_del(const Eo *obj, const void *class_data EINA_UNUSED, va_list *list)
return;
}
eo_event_callback_del((Eo *) obj, EO_EV_DEL, _eo_weak_ref_cb, wref);
*wref = NULL;
}
/* EOF Weak reference. */

View File

@ -69,6 +69,7 @@ START_TEST(eo_weak_reference)
eo_init();
Eo *obj = eo_add(SIMPLE_CLASS, NULL);
Eo *obj2 = eo_add(SIMPLE_CLASS, NULL);
Eo *wref;
eo_do(obj, eo_wref_add(&wref));
fail_if(!wref);
@ -92,8 +93,16 @@ START_TEST(eo_weak_reference)
eo_do(obj, eo_wref_add(&wref));
eo_do(obj, eo_wref_del(&wref));
fail_if(wref);
eo_do(obj, eo_wref_add(&wref));
eo_do(obj2, eo_wref_del(&wref));
fail_if(!wref);
eo_do(obj, eo_wref_del(&wref));
fail_if(wref);
eo_unref(obj);
eo_unref(obj2);
eo_shutdown();