diff options
author | 2016-09-27 18:43:30 -0700 | |
---|---|---|
committer | 2016-09-29 17:31:09 -0700 | |
commit | 0795f23920ee9aabf28e45c63cd592dcccf00216 (patch) | |
tree | ff3f880c5e84f3316532b47d0e9a7729ade848ac /runtime/handle_scope-inl.h | |
parent | d1224dce59eb0019507e41da5e10f12dda66bee4 (diff) |
Clean up ScopedThreadStateChange to use ObjPtr
Also fixed inclusion of -inl.h files in .h files by adding
scoped_object_access-inl.h and scoped_fast_natvie_object_access-inl.h
Changed AddLocalReference / Decode to use ObjPtr.
Changed libartbenchmark to be debug to avoid linkage errors.
Bug: 31113334
Test: test-art-host
Change-Id: I4d2e160483a29d21e1e0e440585ed328b9811483
Diffstat (limited to 'runtime/handle_scope-inl.h')
-rw-r--r-- | runtime/handle_scope-inl.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/runtime/handle_scope-inl.h b/runtime/handle_scope-inl.h index 2e1b8ed3a0..75a0391086 100644 --- a/runtime/handle_scope-inl.h +++ b/runtime/handle_scope-inl.h @@ -21,6 +21,7 @@ #include "base/mutex.h" #include "handle.h" +#include "obj_ptr-inl.h" #include "thread-inl.h" #include "verify_object-inl.h" @@ -107,12 +108,21 @@ inline MutableHandle<T> StackHandleScope<kNumReferences>::NewHandle(T* object) { return h; } +template<size_t kNumReferences> template<class MirrorType, bool kPoison> +inline MutableHandle<MirrorType> StackHandleScope<kNumReferences>::NewHandle( + ObjPtr<MirrorType, kPoison> object) { + return NewHandle(object.Decode()); +} + template<size_t kNumReferences> template<class T> inline HandleWrapper<T> StackHandleScope<kNumReferences>::NewHandleWrapper(T** object) { - SetReference(pos_, *object); - MutableHandle<T> h(GetHandle<T>(pos_)); - pos_++; - return HandleWrapper<T>(object, h); + return HandleWrapper<T>(object, NewHandle(*object)); +} + +template<size_t kNumReferences> template<class T> +inline HandleWrapperObjPtr<T> StackHandleScope<kNumReferences>::NewHandleWrapper( + ObjPtr<T>* object) { + return HandleWrapperObjPtr<T>(object, NewHandle(*object)); } template<size_t kNumReferences> |