diff options
author | Hiroshi Yamauchi <yamauchi@google.com> | 2014-08-19 13:10:36 -0700 |
---|---|---|
committer | Hiroshi Yamauchi <yamauchi@google.com> | 2014-08-19 13:16:42 -0700 |
commit | 41369d2f7042b728a78d5f1e8c49925463e50294 (patch) | |
tree | 266b5ca79dd207f8f93d6ad3e7512b8c59bd9b7a /runtime/method_helper.h | |
parent | 92fd388b9bb433a54e9e7a4e6ab9415f59d8956c (diff) | |
download | art-41369d2f7042b728a78d5f1e8c49925463e50294.zip art-41369d2f7042b728a78d5f1e8c49925463e50294.tar.gz art-41369d2f7042b728a78d5f1e8c49925463e50294.tar.bz2 |
Avoid handle-less methods in ClassLinker::LinkInterfaceMethods().
There were some handle-less methods in local variables across
potential GC points.
Bug: 12687968
Change-Id: I786fbaadf7a52e98194080c67c90fc1c35060d59
Diffstat (limited to 'runtime/method_helper.h')
-rw-r--r-- | runtime/method_helper.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/method_helper.h b/runtime/method_helper.h index f71d273..8150456 100644 --- a/runtime/method_helper.h +++ b/runtime/method_helper.h @@ -41,6 +41,11 @@ class MethodHelper { return method_->GetInterfaceMethodIfProxy(); } + // GetMethod() != Get() for proxy methods. + mirror::ArtMethod* Get() const SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { + return method_.Get(); + } + mirror::String* GetNameAsString(Thread* self) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); const char* GetShorty() SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { |