internal static object GetMixedArrayEntries(IntPtr a) { long safeArraySize = RemoteConfigSettingsHelper.GetSafeArraySize(a); bool flag = safeArraySize == 0L; object result; if (flag) { result = null; } else { object[] array = new object[safeArraySize]; for (long num = 0L; num < safeArraySize; num += 1L) { checked { switch (RemoteConfigSettingsHelper.GetSafeArrayType(a, num)) { case RemoteConfigSettingsHelper.Tag.kIntVal: case RemoteConfigSettingsHelper.Tag.kInt64Val: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetSafeNumberArray(a, num); break; case RemoteConfigSettingsHelper.Tag.kDoubleVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetSafeArrayFloat(a, num); break; case RemoteConfigSettingsHelper.Tag.kBoolVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetSafeArrayBool(a, num); break; case RemoteConfigSettingsHelper.Tag.kStringVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetSafeArrayStringValue(a, num); break; case RemoteConfigSettingsHelper.Tag.kArrayVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetArrayArrayEntries(a, num); break; case RemoteConfigSettingsHelper.Tag.kMapVal: array[(int)((IntPtr)num)] = RemoteConfigSettingsHelper.GetArrayMapEntries(a, num); break; } } } result = array; } return(result); }
internal static object GetArrayEntries(IntPtr a) { long safeArraySize = RemoteConfigSettingsHelper.GetSafeArraySize(a); bool flag = safeArraySize == 0L; object result; if (flag) { result = null; } else { switch (RemoteConfigSettingsHelper.GetSafeArrayType(a, 0L)) { case RemoteConfigSettingsHelper.Tag.kIntVal: case RemoteConfigSettingsHelper.Tag.kInt64Val: result = RemoteConfigSettingsHelper.GetArrayEntriesType <long>(a, safeArraySize, new Func <IntPtr, long, long>(RemoteConfigSettingsHelper.GetSafeNumberArray)); return(result); case RemoteConfigSettingsHelper.Tag.kDoubleVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <float>(a, safeArraySize, new Func <IntPtr, long, float>(RemoteConfigSettingsHelper.GetSafeArrayFloat)); return(result); case RemoteConfigSettingsHelper.Tag.kBoolVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <bool>(a, safeArraySize, new Func <IntPtr, long, bool>(RemoteConfigSettingsHelper.GetSafeArrayBool)); return(result); case RemoteConfigSettingsHelper.Tag.kStringVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <string>(a, safeArraySize, new Func <IntPtr, long, string>(RemoteConfigSettingsHelper.GetSafeArrayStringValue)); return(result); case RemoteConfigSettingsHelper.Tag.kArrayVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <object>(a, safeArraySize, new Func <IntPtr, long, object>(RemoteConfigSettingsHelper.GetArrayArrayEntries)); return(result); case RemoteConfigSettingsHelper.Tag.kMapVal: result = RemoteConfigSettingsHelper.GetArrayEntriesType <IDictionary <string, object> >(a, safeArraySize, new Func <IntPtr, long, IDictionary <string, object> >(RemoteConfigSettingsHelper.GetArrayMapEntries)); return(result); } result = null; } return(result); }