public void ReadTest(MemoryStream stream) { BinaryReader reader = new BinaryReader(stream); Assert.AreEqual(LEB128.ReadUInt32(reader), 0xFF00FF00u); Assert.AreEqual(LEB128.ReadUInt32(reader), 0xAABBAAu); Assert.AreEqual(LEB128.ReadUInt32(reader), 0xCCu); Assert.AreEqual(LEB128.ReadUInt7(reader), 0x11u); Assert.AreEqual(LEB128.ReadUInt7(reader), 0x7Fu); Assert.AreEqual(LEB128.ReadInt32(reader), 0x7F00FF00); Assert.AreEqual(LEB128.ReadInt32(reader), 0xAABBAA); Assert.AreEqual(LEB128.ReadInt32(reader), 0xCC); Assert.AreEqual(LEB128.ReadInt32(reader), -1); Assert.AreEqual(LEB128.ReadInt7(reader), 0x11); Assert.AreEqual(LEB128.ReadInt7(reader), -1); }
public GlobalType(BinaryReader reader) { content_type = (WebAssemblyType)LEB128.ReadUInt7(reader); if (!WebAssemblyHelper.IsValueType(content_type)) { throw new Exception($"File is invalid. Expected value type, received '{content_type}'."); } byte mut = LEB128.ReadUInt7(reader); if (mut != 0 && mut != 1) { throw new Exception($"File is invalid. Expected 0 or 1, received '{mut}'."); } mutability = mut != 0; }
public ResizeLimit(BinaryReader reader) { byte flags = LEB128.ReadUInt7(reader); if (flags != 0 && flags != 1) { throw new Exception($"File is invalid. Expected 0 or 1, received '{flags}'."); } initial = LEB128.ReadUInt32(reader); if (flags != 0) { maximum = LEB128.ReadUInt32(reader); if (maximum < initial) { throw new Exception($"File is invalid. Initial memory size greater than maximum."); } } }