diff options
author | Vladimir Sadov <vsadov@microsoft.com> | 2019-05-02 22:16:31 -0700 |
---|---|---|
committer | Jan Kotas <jkotas@microsoft.com> | 2019-05-02 22:16:31 -0700 |
commit | b271aff1fa54c1385143f3b45c1bf3af01c901cd (patch) | |
tree | 69c76676a56a28979fd1c5c66db9d096afa98c6e /src/vm/object.h | |
parent | dd814e26e2206c36589f88b2c58a6f3695f7dc4e (diff) | |
download | coreclr-b271aff1fa54c1385143f3b45c1bf3af01c901cd.tar.gz coreclr-b271aff1fa54c1385143f3b45c1bf3af01c901cd.tar.bz2 coreclr-b271aff1fa54c1385143f3b45c1bf3af01c901cd.zip |
System.GC.AllocateUninitializedArray (#24096)
* Do not expand to allocation_quantum in SOH when GC_ALLOC_ZEROING_OPTIONAL
* short-circuit short arrays to use `new T[size]`
* Clean syncblock of large-aligned objects on ARM32
* specialize single-dimensional path AllocateSzArray
* Unit tests
* Some PR feedback. Made AllocateUninitializedArray not be trimmed away.
* PR feedback on gchelpers
- replaced use of multiple bool parameters with flags enum
- merged some methods with nearly identical implementation
- switched callers to use AllocateSzArray vs. AllocateArrayEx where appropriate.
* PR feedback. Removed X86 specific array/string allocation helpers.
Diffstat (limited to 'src/vm/object.h')
-rw-r--r-- | src/vm/object.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/vm/object.h b/src/vm/object.h index 173036d249..4842a95b33 100644 --- a/src/vm/object.h +++ b/src/vm/object.h @@ -553,8 +553,8 @@ class ArrayBase : public Object friend class GCHeap; friend class CObjectHeader; friend class Object; - friend OBJECTREF AllocateArrayEx(MethodTable *pArrayMT, INT32 *pArgs, DWORD dwNumArgs, BOOL bAllocateInLargeHeap); - friend OBJECTREF FastAllocatePrimitiveArray(MethodTable* arrayType, DWORD cElements, BOOL bAllocateInLargeHeap); + friend OBJECTREF AllocateSzArray(MethodTable *pArrayMT, INT32 length, GC_ALLOC_FLAGS flags, BOOL bAllocateInLargeHeap); + friend OBJECTREF AllocateArrayEx(MethodTable *pArrayMT, INT32 *pArgs, DWORD dwNumArgs, GC_ALLOC_FLAGS flags, BOOL bAllocateInLargeHeap); friend FCDECL2(Object*, JIT_NewArr1VC_MP_FastPortable, CORINFO_CLASS_HANDLE arrayMT, INT_PTR size); friend FCDECL2(Object*, JIT_NewArr1OBJ_MP_FastPortable, CORINFO_CLASS_HANDLE arrayMT, INT_PTR size); friend class JIT_TrialAlloc; @@ -721,7 +721,7 @@ class PtrArray : public ArrayBase { friend class GCHeap; friend class ClrDataAccess; - friend OBJECTREF AllocateArrayEx(MethodTable *pArrayMT, INT32 *pArgs, DWORD dwNumArgs, BOOL bAllocateInLargeHeap); + friend OBJECTREF AllocateArrayEx(MethodTable *pArrayMT, INT32 *pArgs, DWORD dwNumArgs, DWORD flags, BOOL bAllocateInLargeHeap); friend class JIT_TrialAlloc; friend class CheckAsmOffsets; |