diff options
Diffstat (limited to 'src/classlibnative/bcltype/arraynative.cpp')
-rw-r--r-- | src/classlibnative/bcltype/arraynative.cpp | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/classlibnative/bcltype/arraynative.cpp b/src/classlibnative/bcltype/arraynative.cpp index a40aed5619..eb5cfd9340 100644 --- a/src/classlibnative/bcltype/arraynative.cpp +++ b/src/classlibnative/bcltype/arraynative.cpp @@ -133,21 +133,29 @@ FCIMPL1(INT64, ArrayNative::GetLongLengthNoRank, ArrayBase* array) FCIMPLEND -FCIMPL1(INT32, ArrayNative::GetDataPtrOffsetInternal, ArrayBase* array) +FCIMPL1(void*, ArrayNative::GetRawArrayData, ArrayBase* array) { FCALL_CONTRACT; VALIDATEOBJECT(array); - if (array == NULL) - FCThrow(kNullReferenceException); + _ASSERTE(array != NULL); - return ArrayBase::GetDataPtrOffset(array->GetMethodTable()); + return array->GetDataPtr(); } FCIMPLEND +FCIMPL1(INT32, ArrayNative::GetElementSize, ArrayBase* array) +{ + FCALL_CONTRACT; + + VALIDATEOBJECT(array); + _ASSERTE(array != NULL); + return (INT32)array->GetComponentSize(); +} +FCIMPLEND |