internal void SetFlag(MetadataItem.MetadataFlags flag, bool value) { SpinWait spinWait = new SpinWait(); while (true) { int flags = this._flags; int num = value ? (int)((MetadataItem.MetadataFlags)flags | flag) : (int)((MetadataItem.MetadataFlags)flags & ~flag); if ((flags & 8) != 8) { if (flags != Interlocked.CompareExchange(ref this._flags, num, flags)) { spinWait.SpinOnce(); } else { goto label_3; } } else { break; } } if ((flag & MetadataItem.MetadataFlags.Readonly) == MetadataItem.MetadataFlags.Readonly) { return; } throw new InvalidOperationException(Strings.OperationOnReadOnlyItem); label_3 :; }
internal MetadataItem(MetadataItem.MetadataFlags flags) { this._flags = (int)flags; }
internal GlobalItem(MetadataItem.MetadataFlags flags) : base(flags) { }
internal bool GetFlag(MetadataItem.MetadataFlags flag) { return(flag == ((MetadataItem.MetadataFlags) this._flags & flag)); }
internal MappingBase(MetadataItem.MetadataFlags flags) : base(flags) { }