public void Add(IList <TypeReference> types)
        {
            TypeReference[] key  = types.ToArray <TypeReference>();
            object          obj2 = this._data;

            lock (obj2)
            {
                if (this._data.ContainsKey(key) || !MetadataCacheWriter.TypesDoNotExceedMaximumRecursion(types))
                {
                    return;
                }
                this._data.Add(key, (uint)this._data.Count);
            }
            foreach (TypeReference reference in key)
            {
                Il2CppTypeCollector.Add(reference, 0);
            }
        }
Exemple #2
0
        public void Add(MethodReference method)
        {
            object obj2 = this._data;

            lock (obj2)
            {
                if ((this._data.ContainsKey(method) || !MetadataCacheWriter.TypeDoesNotExceedMaximumRecursion(method.DeclaringType)) || (method.IsGenericInstance && !MetadataCacheWriter.TypesDoNotExceedMaximumRecursion(((GenericInstanceMethod)method).GenericArguments)))
                {
                    return;
                }
                this._data.Add(method, (uint)this._data.Count);
            }
            if (method.DeclaringType.IsGenericInstance)
            {
                GenericInstanceType declaringType = (GenericInstanceType)method.DeclaringType;
                Il2CppGenericInstCollector.Add(declaringType.GenericArguments);
            }
            if (method.IsGenericInstance)
            {
                GenericInstanceMethod method2 = (GenericInstanceMethod)method;
                Il2CppGenericInstCollector.Add(method2.GenericArguments);
            }
        }