Stop reverting patches without providing even slightly useful test cases and bug reports. I'm pushing this back in, and I'll fix it when I get a proper report, stop reverting shit.
-- Tom. On 10/10/14 02:07, Mike Blumenkrantz wrote: > discomfitor pushed a commit to branch master. > > http://git.enlightenment.org/core/efl.git/commit/?id=11da9421842c439474ea08b346cdb1ee986db361 > > commit 11da9421842c439474ea08b346cdb1ee986db361 > Author: Mike Blumenkrantz <[email protected]> > Date: Thu Oct 9 21:01:48 2014 -0400 > > Revert "Eo: Move eo_add_ref logic inside the library." > > This reverts commit 8d16d8eb5711d246509e44bf0ce5366f65fd9aea. > > this broke child object deletion in all the cases that I tested and > regular object deletion in some cases as well > --- > src/lib/eo/Eo.h | 15 +++++---------- > src/lib/eo/eo.c | 4 ++-- > 2 files changed, 7 insertions(+), 12 deletions(-) > > diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h > index 8c26d6e..b280797 100644 > --- a/src/lib/eo/Eo.h > +++ b/src/lib/eo/Eo.h > @@ -636,7 +636,7 @@ EAPI void eo_error_set_internal(const Eo *obj, const char > *file, int line); > #define eo_add(klass, parent, ...) \ > ({ \ > const Eo_Class *_tmp_klass = klass; \ > - Eo *_tmp_obj = _eo_add_internal_start(__FILE__, __LINE__, _tmp_klass, > parent, EINA_FALSE); \ > + Eo *_tmp_obj = _eo_add_internal_start(__FILE__, __LINE__, _tmp_klass, > parent); \ > eo_do(_tmp_obj, \ > eo_constructor(); \ > __VA_ARGS__; \ > @@ -659,17 +659,12 @@ EAPI void eo_error_set_internal(const Eo *obj, const > char *file, int line); > */ > #define eo_add_ref(klass, parent, ...) \ > ({ \ > - const Eo_Class *_tmp_klass = klass; \ > - Eo *_tmp_obj = _eo_add_internal_start(__FILE__, __LINE__, _tmp_klass, > parent, EINA_TRUE); \ > - eo_do(_tmp_obj, \ > - eo_constructor(); \ > - __VA_ARGS__; \ > - _tmp_obj = eo_finalize(); \ > - ); \ > - _tmp_obj; \ > + Eo *_tmp_obj_ref = eo_add(klass, parent, __VA_ARGS__); \ > + if (eo_do(_tmp_obj_ref, eo_parent_get())) eo_ref(_tmp_obj_ref); \ > + _tmp_obj_ref; \ > }) > > -EAPI Eo * _eo_add_internal_start(const char *file, int line, const Eo_Class > *klass_id, Eo *parent, Eina_Bool ref); > +EAPI Eo * _eo_add_internal_start(const char *file, int line, const Eo_Class > *klass_id, Eo *parent); > > /** > * @brief Get a pointer to the data of an object for a specific class. > diff --git a/src/lib/eo/eo.c b/src/lib/eo/eo.c > index 6e3ed73..e78b6f0 100644 > --- a/src/lib/eo/eo.c > +++ b/src/lib/eo/eo.c > @@ -868,7 +868,7 @@ _eo_class_funcs_set(_Eo_Class *klass) > } > > EAPI Eo * > -_eo_add_internal_start(const char *file, int line, const Eo_Class *klass_id, > Eo *parent_id, Eina_Bool ref) > +_eo_add_internal_start(const char *file, int line, const Eo_Class *klass_id, > Eo *parent_id) > { > _Eo_Object *obj; > > @@ -915,7 +915,7 @@ _eo_add_internal_start(const char *file, int line, const > Eo_Class *klass_id, Eo > > /* If there's a parent. Unref. Eo_add should return an object with > either a > * parent ref, or with the lack of, just a ref. */ > - if (!ref && eo_do(eo_id, eo_parent_get())) > + if (eo_do(eo_id, eo_parent_get())) > { > _eo_unref(obj); > } > ------------------------------------------------------------------------------ Meet PCI DSS 3.0 Compliance Requirements with EventLog Analyzer Achieve PCI DSS 3.0 Compliant Status with Out-of-the-box PCI DSS Reports Are you Audit-Ready for PCI DSS 3.0 Compliance? Download White paper Comply to PCI DSS 3.0 Requirement 10 and 11.5 with EventLog Analyzer http://pubads.g.doubleclick.net/gampad/clk?id=154622311&iu=/4140/ostg.clktrk _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
