private void TryParseRouting() { if (this._routing != null || !this.RoutingPresent) { return; } List <GreSourceRouteEntry> list = new List <GreSourceRouteEntry>(); int num1 = this.StartOffset + this.OffsetRouting; int offset = num1; int num2 = this.StartOffset + this.Length; while (num2 >= offset) { if (offset == num1 + (int)this.RoutingOffset) { this._activeSourceRouteEntryIndex = new int?(list.Count); } GreSourceRouteEntry entry; if (!GreSourceRouteEntry.TryReadEntry(this.Buffer, ref offset, num2 - offset, out entry)) { this._isValidRouting = false; break; } if (entry != null) { list.Add(entry); } else { break; } } this._routing = new ReadOnlyCollection <GreSourceRouteEntry>((IList <GreSourceRouteEntry>)list); }
private void TryParseRouting() { if (_routing != null || !RoutingPresent) { return; } List <GreSourceRouteEntry> entries = new List <GreSourceRouteEntry>(); int routingStartOffset = StartOffset + OffsetRouting; int entryOffset = routingStartOffset; int totalLength = StartOffset + Length; while (totalLength >= entryOffset) { GreSourceRouteEntry entry; if (entryOffset == routingStartOffset + RoutingOffset) { _activeSourceRouteEntryIndex = entries.Count; } if (!GreSourceRouteEntry.TryReadEntry(Buffer, ref entryOffset, totalLength - entryOffset, out entry)) { _isValidRouting = false; break; } if (entry == null) { break; } entries.Add(entry); } _routing = new ReadOnlyCollection <GreSourceRouteEntry>(entries); }