public int ReadFrom(byte[] buffer, int offset) { Header = Utilities.ToStruct <ExtentHeader>(buffer, offset + 0); if (Header.Magic != ExtentHeader.HeaderMagic) { throw new IOException("Invalid extent header reading inode"); } if (Header.Depth == 0) { Index = null; Extents = new Extent[Header.Entries]; for (int i = 0; i < Extents.Length; ++i) { Extents[i] = Utilities.ToStruct <Extent>(buffer, offset + 12 + i * 12); } } else { Extents = null; Index = new ExtentIndex[Header.Entries]; for (int i = 0; i < Index.Length; ++i) { Index[i] = Utilities.ToStruct <ExtentIndex>(buffer, offset + 12 + i * 12); } } return(12 + Header.MaxEntries * 12); }
public int ReadFrom(byte[] buffer, int offset) { Header = Utilities.ToStruct<ExtentHeader>(buffer, offset + 0); if (Header.Magic != ExtentHeader.HeaderMagic) { throw new IOException("Invalid extent header reading inode"); } if (Header.Depth == 0) { Index = null; Extents = new Extent[Header.Entries]; for (int i = 0; i < Extents.Length; ++i) { Extents[i] = Utilities.ToStruct<Extent>(buffer, offset + 12 + (i * 12)); } } else { Extents = null; Index = new ExtentIndex[Header.Entries]; for (int i = 0; i < Index.Length; ++i) { Index[i] = Utilities.ToStruct<ExtentIndex>(buffer, offset + 12 + (i * 12)); } } return 12 + (Header.MaxEntries * 12); }