OSDN Git Service

Fix vtable corruption.
authorAlex Light <allight@google.com>
Tue, 3 May 2016 01:51:34 +0000 (18:51 -0700)
committerAlex Light <allight@google.com>
Tue, 3 May 2016 20:09:28 +0000 (13:09 -0700)
commitb554343e1d72104f0b26e749c1877d0566667a85
tree7ac8e8c4bcb027550f1cf93449447253dcadda20
parenta421e9e758ebb29d3ca7d2b8911e8dfa9a3ded22
Fix vtable corruption.

Due to failing to keep track of superclass implementations of
interface methods we could end up in situations where methods were
placed onto a class's vtable multiple times. This could cause virtual
and interface dispatches on subclasses to fail by causing corruption
of the subclass's vtable and iftable.

Bug: 28333278

(cherry picked from commit d6c2bfaff8850a9a02ee9b75cf8c96eadd8d5c69)

Change-Id: I37d9740ca912daf37cdf9ff82697bbc5db46177a
runtime/class_linker.cc
test/960-default-smali/expected.txt
test/960-default-smali/src/Foo.java [new file with mode: 0644]
test/960-default-smali/src/Fooer.java [new file with mode: 0644]
test/960-default-smali/src/K.java [new file with mode: 0644]
test/960-default-smali/src/L.java [new file with mode: 0644]
test/960-default-smali/src/M.java [new file with mode: 0644]
test/960-default-smali/src/classes.xml