Solve inflated view/cached view inconsistency
In a specific race condition where we free a view and clear its cached
view while that view is reinflating, we get into a scenario where the
view is null but we still have a cached view. This causes a crash if you
then try to reinflate the view. This occurs because the reinflate
updates the cache but does not update the view
In this CL, we tightly couple updates to the view in inflation so that
they always update the cache together. This way, it shouldn't be
possible for the inflated view and cached view to get out of sync.
Bug: 124387005
Test: Reproduced bug (via artificially increasing reapplyAsync latency)
and it no longer crashes.
Change-Id: Icfad13d00922d04213147fdaedb1229ab73b133c
1 file changed