Page MenuHomePhabricator

efl_ui_layout: call efl_del instead of efl_unref when text part does not exist
AbandonedPublic

Authored by YOhoho on Mar 17 2019, 10:20 PM.

Details

Summary

Because efl_isa doesn't call _efl_object_call_end, the part object is not
removed. it occurs a bunch of efl_unref error message.

Test Plan
  1. elementary_test -to 'efl.ui.box'
  2. exit window.
  3. check there is no efl_unref error message.

Diff Detail

Repository
rEFL core/efl
Branch
master
Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 10376
Build 8204: arc lint + arc unit
YOhoho created this revision.Mar 17 2019, 10:20 PM
YOhoho requested review of this revision.Mar 17 2019, 10:20 PM
YOhoho updated this revision to Diff 20674.Mar 17 2019, 10:23 PM
YOhoho edited the summary of this revision. (Show Details)

.

cedric requested changes to this revision.Mar 17 2019, 10:40 PM

D8358 is actually fixing the issue by enforcing efl_unref to actually execture the auto unref logic. I didn't make efl_isa and all the other direct call to eo.c function enforce the auto unref, but maybe I should. My logic was that it would be necessary to always use efl_ref/unref to do something with a part with those function, but maybe that is incorrect. I don't know why someone would do :

efl_isa(efl_part(obj, part), SOME_CLASS)

But I guess it should work. Maybe you can add a patch that does the samething as D8358, but for efl_isa?

This revision now requires changes to proceed.Mar 17 2019, 10:40 PM
YOhoho abandoned this revision.Mar 18 2019, 12:11 AM

Oh, i didn't notice that patches.

zmike added a comment.Mar 18 2019, 5:52 AM

This is going in as a temp fix for T7747 because the alternative is to revert the previous change here and break legacy behavior. It can be reverted later if necessary.