Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TryGetBase64ContentLength()

override bool System.Xml.XmlBinaryReader.TryGetBase64ContentLength ( out int length)
inlinevirtual

Reimplemented from System.Xml.XmlBaseReader.

Definition at line 314 of file XmlBinaryReader.cs.

315 {
316 length = 0;
317 if (!_buffered)
318 {
319 return false;
320 }
321 if (_arrayState != 0)
322 {
323 return false;
324 }
325 if (!base.Node.Value.TryGetByteArrayLength(out var length2))
326 {
327 return false;
328 }
329 int offset = base.BufferReader.Offset;
330 try
331 {
332 bool flag = false;
333 while (!flag && !base.BufferReader.EndOfFile)
334 {
335 XmlBinaryNodeType nodeType = GetNodeType();
336 SkipNodeType();
337 int num;
338 switch (nodeType)
339 {
340 case XmlBinaryNodeType.Bytes8TextWithEndElement:
341 num = base.BufferReader.ReadUInt8();
342 flag = true;
343 break;
344 case XmlBinaryNodeType.Bytes16TextWithEndElement:
345 num = base.BufferReader.ReadUInt16();
346 flag = true;
347 break;
348 case XmlBinaryNodeType.Bytes32TextWithEndElement:
349 num = base.BufferReader.ReadUInt31();
350 flag = true;
351 break;
352 case XmlBinaryNodeType.EndElement:
353 num = 0;
354 flag = true;
355 break;
356 case XmlBinaryNodeType.Bytes8Text:
357 num = base.BufferReader.ReadUInt8();
358 break;
359 case XmlBinaryNodeType.Bytes16Text:
360 num = base.BufferReader.ReadUInt16();
361 break;
362 case XmlBinaryNodeType.Bytes32Text:
363 num = base.BufferReader.ReadUInt31();
364 break;
365 default:
366 return false;
367 }
368 base.BufferReader.Advance(num);
369 if (length2 > int.MaxValue - num)
370 {
371 return false;
372 }
373 length2 += num;
374 }
375 length = length2;
376 return true;
377 }
378 finally
379 {
381 }
382 }
XmlBinaryNodeType GetNodeType()

References System.Xml.XmlBinaryReader._arrayState, System.Xml.XmlBinaryReader._buffered, System.Xml.Dictionary, System.Xml.XmlBinaryReader.GetNodeType(), System.length, System.length2, System.offset, and System.Xml.XmlBinaryReader.SkipNodeType().