if (array == NULL)
FCThrow(kNullReferenceException);
-
- // What is this an array of?
- MethodTable *pArrayMT = array->GetMethodTable();
- DWORD Rank = pArrayMT->GetRank();
-
- if (dimension >= Rank)
- FCThrowRes(kIndexOutOfRangeException, W("IndexOutOfRange_ArrayRankIndex"));
+
+ if (dimension != 0)
+ {
+ // Check the dimension is within our rank
+ unsigned int rank = array->GetRank();
+
+ if (dimension >= rank)
+ FCThrowRes(kIndexOutOfRangeException, W("IndexOutOfRange_ArrayRankIndex"));
+ }
return array->GetLowerBoundsPtr()[dimension];
}
if (array == NULL)
FCThrow(kNullReferenceException);
-
- // What is this an array of?
- MethodTable *pArrayMT = array->GetMethodTable();
- DWORD Rank = pArrayMT->GetRank();
-
- if (dimension >= Rank)
- FCThrowRes(kIndexOutOfRangeException, W("IndexOutOfRange_ArrayRankIndex"));
+
+ if (dimension != 0)
+ {
+ // Check the dimension is within our rank
+ unsigned int rank = array->GetRank();
+
+ if (dimension >= rank)
+ FCThrowRes(kIndexOutOfRangeException, W("IndexOutOfRange_ArrayRankIndex"));
+ }
return array->GetBoundsPtr()[dimension] + array->GetLowerBoundsPtr()[dimension] - 1;
}
if (array==NULL)
FCThrow(kNullReferenceException);
- unsigned int rank = array->GetRank();
- if (dimension >= rank)
- FCThrow(kIndexOutOfRangeException);
+
+ if (dimension != 0)
+ {
+ // Check the dimension is within our rank
+ unsigned int rank = array->GetRank();
+ if (dimension >= rank)
+ FCThrow(kIndexOutOfRangeException);
+ }
+
return array->GetBoundsPtr()[dimension];
}
FCIMPLEND