- string s = "$ArrayType$"+UnmanagedDataCount.ToString();
- UnmanagedDataCount++;
- TypeBuilder datablobtype = DefineNestedType (s,
- TypeAttributes.NestedPrivate|TypeAttributes.ExplicitLayout|TypeAttributes.Sealed,
- pmodule.assemblyb.corlib_value_type, null, PackingSize.Size1, size);
- datablobtype.CreateType ();
+ string typeName = "$ArrayType$" + size;
+ Type datablobtype = pmodule.GetRegisteredType (fullname + "+" + typeName);
+ if (datablobtype == null) {
+ TypeBuilder tb = DefineNestedType (typeName,
+ TypeAttributes.NestedPrivate|TypeAttributes.ExplicitLayout|TypeAttributes.Sealed,
+ pmodule.assemblyb.corlib_value_type, null, PackingSize.Size1, size);
+ tb.CreateType ();
+ datablobtype = tb;
+ }