OSDN Git Service

Fix stale root error in verifier
authorMathieu Chartier <mathieuc@google.com>
Sat, 13 Sep 2014 00:01:24 +0000 (17:01 -0700)
committerMathieu Chartier <mathieuc@google.com>
Sat, 13 Sep 2014 00:21:42 +0000 (17:21 -0700)
commit6167864e28e4e12658ebdbaf1d5239acdaf4aaa4
tree7cdab87b9fcf28a49f1cd8b6801a359fb155b4fb
parent9a3c262484621b4ac291aac96d6b255e9e261203
Fix stale root error in verifier

There was a stale root error caused by the static roots from
the reg types. These were visitied if there was an active verifier
in the method_verifiers_ but this is not always the case when a GC
is run. The fix is to always visit the static method verifier roots.

This only showed up as a bug without an image since these roots
were primitive classes and always in the image, and therefore
didn't ever need to be updated due to moving GC.

Bug: 17262039
Change-Id: I592f2770570de97b431671cfbd409f63697892f1
runtime/gc/reference_processor.cc
runtime/runtime.cc
runtime/verifier/method_verifier.cc
runtime/verifier/method_verifier.h
runtime/verifier/reg_type_cache.cc
runtime/verifier/reg_type_cache.h