public void Build() { foreach (INamedTypeSymbol symbol in GetSymbolsForNativeApi()) { if (symbol.TypeKind == TypeKind.Enum) { Enums.Add(symbol.Name, symbol); continue; } if (IsRefCountedTypeSymbol(symbol)) { RefCounted.Add(symbol.Name, symbol); continue; } if (IsScopedTypeSymbol(symbol)) { Scoped.Add(symbol.Name, symbol); continue; } if (symbol.TypeKind != TypeKind.Struct) { continue; } if (IsSizedStruct(symbol)) { Sized.Add(symbol.Name, symbol); continue; } Simple.Add(symbol.Name, symbol); } }
/// <summary> /// Initializes a new instance of <see cref="CefBaseRefCounted{T}"/>. /// </summary> public unsafe CefBaseRefCounted() : base(Allocate(sizeof(T))) { var reference = new RefCountedReference(new WeakReference <CefBaseRefCounted>(this)); GlobalSyncRoot.EnterWriteLock(); try { RefCounted.Add(_instance, reference); } finally { GlobalSyncRoot.ExitWriteLock(); } }