internal void Finish() { if (bb != null) { throw new InvalidOperationException(); } bb = new ByteBuffer(1024); linkOffsets = new List <int>(); root.Write(bb, linkOffsets); root = null; }
internal ResourceDirectoryEntry this[OrdinalOrName id] { get { foreach (ResourceDirectoryEntry entry in entries) { if (entry.OrdinalOrName.IsEqual(id)) { return(entry); } } // the entries must be sorted ResourceDirectoryEntry newEntry = new ResourceDirectoryEntry(id); if (id.Name == null) { for (int i = namedEntries; i < entries.Count; i++) { if (entries[i].OrdinalOrName.IsGreaterThan(id)) { entries.Insert(i, newEntry); return(newEntry); } } entries.Add(newEntry); return(newEntry); } else { for (int i = 0; i < namedEntries; i++) { if (entries[i].OrdinalOrName.IsGreaterThan(id)) { entries.Insert(i, newEntry); namedEntries++; return(newEntry); } } entries.Insert(namedEntries++, newEntry); return(newEntry); } } }