Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }