b47a1cc17f53951b900e56bb68c58c972517cb07 |
|
07-Sep-2016 |
Alex Light <allight@google.com> |
Fix vtable corruption issue We were adding duplicate methods to the vtable in some cases where default methods (and conflict methods) were used. This caused issues where they were not correctly overridden in subclasses that implement these methods directly. When overridden only one of the vtable entries was updated meaning it was still possible to reach the overridden code using a virtual call. This change prevents the duplicate methods from being added to the vtable in this circumstance. It also adds a debug check that ensures that the vtable has no duplicates to prevent regressions. Bug: 31280371 Test: mma test-art-host Test: mma test-art-host-run-test-960-default-smali Change-Id: I17d88fb8949c8d5d75b4de3c734fd98660b81e61 (cherry picked from commit 1f3925d4f067438d3689ef2736fd2af063c98668)
|