Page MenuHomePhabricator

evas: Defer render post callbacks added during async render

Authored by ManMower on Jul 31 2018, 12:38 PM.



To take screenshots, Enlightenment makes a new snapshot object, performs
a manual render, and uses the snapshot results.

Turns out if this happens while an async render is in progress, the
async render's completion triggers a render post callback on the snapshot
object even though it's never been involved in a render.

We need to defer new render post callbacks until any currently running
render completes, then add them during that render's post.

Fix T7156

Diff Detail

rEFL core/efl
Automatic diff as part of commit; lint not applicable.
Automatic diff as part of commit; unit tests not applicable.
ManMower created this revision.Jul 31 2018, 12:38 PM

It seems that this patch has no reviewers specified. If you are unsure who can review your patch, please check this wiki page and see if anyone can be added:

devilhorns requested changes to this revision.Jul 31 2018, 12:44 PM
devilhorns added a subscriber: devilhorns.
devilhorns added inline comments.

nit: the void should be on it's own line with the function under it

This revision now requires changes to proceed.Jul 31 2018, 12:44 PM
zmike requested changes to this revision.Jul 31 2018, 12:45 PM
zmike added inline comments.

Doesn't this list iteration need to happen only if the type is post render?


Same as above.

ManMower updated this revision to Diff 16006.Jul 31 2018, 1:05 PM

Fix coding style for function declaration

Only search deferred_callbacks list for RENDER_POST callbacks

Don't bother checking type during search, as we're only searching when we know it matches

zmike accepted this revision.Jul 31 2018, 1:14 PM
devilhorns accepted this revision.Jul 31 2018, 1:23 PM
This revision is now accepted and ready to land.Jul 31 2018, 1:23 PM
This revision was automatically updated to reflect the committed changes.