diff options
| author | 2017-01-24 15:32:25 -0800 | |
|---|---|---|
| committer | 2017-01-25 09:58:30 -0800 | |
| commit | 440b5d9bffafa46366f58599414e0cff35ea3a6a (patch) | |
| tree | 033967c68fff98790ba2ef6f84e31bcea36acbf0 /runtime/mirror/array.h | |
| parent | f34077c96af3389e8eae65252d4c5d51cf630039 (diff) | |
Implement class-pre-define time redefinition.
This allows one to redefine classes as they are being loaded without
restriction as to the types of transformations that may be included.
For example one is allowed to add additional methods or fields to the
class being defined.
Bug: 31684920
Test: mma -j40 test-art-host
Change-Id: I671ee13444c05f28424e727fd80d9d46c78ca287
Diffstat (limited to 'runtime/mirror/array.h')
| -rw-r--r-- | runtime/mirror/array.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/mirror/array.h b/runtime/mirror/array.h index 19d300e1f4..16cf30f1e2 100644 --- a/runtime/mirror/array.h +++ b/runtime/mirror/array.h @@ -119,6 +119,10 @@ class MANAGED PrimitiveArray : public Array { static PrimitiveArray<T>* Alloc(Thread* self, size_t length) REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!Roles::uninterruptible_); + static PrimitiveArray<T>* AllocateAndFill(Thread* self, const T* data, size_t length) + REQUIRES_SHARED(Locks::mutator_lock_) REQUIRES(!Roles::uninterruptible_); + + const T* GetData() const ALWAYS_INLINE REQUIRES_SHARED(Locks::mutator_lock_) { return reinterpret_cast<const T*>(GetRawData(sizeof(T), 0)); } |