Page MenuHomePhabricator

evas vg: check object changed as well 2
ClosedPublic

Authored by kimcinoo on Fri, Sep 11, 3:33 AM.

Details

Summary

evas cannot render vg object if Efl_Canvas_Vg_Node_Data flag is not
EFL_GFX_CHANGE_FLAG_NONE and Evas_Object_Protected_Data.changed is FALSE,
when vg object marks its node as changed.

Above case could be possible if vg object render_pre is not called, and
only nd->vd->obj->changed is set to false by evas_object_change_reset.

Diff Detail

Repository
rEFL core/efl
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
kimcinoo created this revision.Fri, Sep 11, 3:33 AM
kimcinoo requested review of this revision.Fri, Sep 11, 3:33 AM
Hermet requested changes to this revision.Mon, Sep 14, 8:17 PM

Please check a comment.

src/lib/evas/canvas/efl_canvas_vg_node.c
24

I think the case only need to perform this:

if (!nd->vg_obj || efl_invalidated_get(nd->vg_obj)) return;
efl_canvas_vg_object_change(nd->vd);

not necessary, traversing tree hierarachy?

This revision now requires changes to proceed.Mon, Sep 14, 8:17 PM
kimcinoo updated this revision to Diff 31140.Tue, Sep 15, 7:29 PM

Add more null check

kimcinoo added inline comments.Tue, Sep 15, 7:43 PM
src/lib/evas/canvas/efl_canvas_vg_node.c
24

In the issue case, the object is validate - efl_invalidated_get returns 0 -
When the flag is set to EFL_GFX_CHANGE_FLAG_ALL, its parent also sets its flag as well,
so I do not want to call efl_canvas_vg_object_change at this point.

Hermet requested changes to this revision.Tue, Sep 15, 9:40 PM

Please check a comment.

src/lib/evas/canvas/efl_canvas_vg_node.c
24

My question point is, in this case we only need to call below, not trigger all tree hierarchy,

if (!nd->vg_obj || efl_invalidated_get(nd->vg_obj)) return;
efl_canvas_vg_object_change(nd->vd);
This revision now requires changes to proceed.Tue, Sep 15, 9:40 PM
kimcinoo updated this revision to Diff 31141.Tue, Sep 15, 10:59 PM

call efl_canvas_vg_object_change only

Hermet accepted this revision.Wed, Sep 16, 6:39 PM
This revision is now accepted and ready to land.Wed, Sep 16, 6:39 PM
This revision was automatically updated to reflect the committed changes.