summaryrefslogtreecommitdiff
path: root/src/vm/object.h
diff options
context:
space:
mode:
authorVladimir Sadov <vsadov@microsoft.com>2019-05-02 22:16:31 -0700
committerJan Kotas <jkotas@microsoft.com>2019-05-02 22:16:31 -0700
commitb271aff1fa54c1385143f3b45c1bf3af01c901cd (patch)
tree69c76676a56a28979fd1c5c66db9d096afa98c6e /src/vm/object.h
parentdd814e26e2206c36589f88b2c58a6f3695f7dc4e (diff)
downloadcoreclr-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.h6
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;