Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 8 additions & 9 deletions src/absil/ilread.fs
Original file line number Diff line number Diff line change
Expand Up @@ -199,17 +199,17 @@ let seekReadUInt16AsInt32 mdv addr = int32 (seekReadUInt16 mdv addr)

let seekReadCompressedUInt32 mdv addr =
let b0 = seekReadByte mdv addr
if b0 <= 0x7Fuy then int b0, addr+1
if b0 <= 0x7Fuy then struct (int b0, addr+1)
elif b0 <= 0xBFuy then
let b0 = b0 &&& 0x7Fuy
let b1 = seekReadByteAsInt32 mdv (addr+1)
(int b0 <<< 8) ||| int b1, addr+2
struct ((int b0 <<< 8) ||| int b1, addr+2)
else
let b0 = b0 &&& 0x3Fuy
let b1 = seekReadByteAsInt32 mdv (addr+1)
let b2 = seekReadByteAsInt32 mdv (addr+2)
let b3 = seekReadByteAsInt32 mdv (addr+3)
(int b0 <<< 24) ||| (int b1 <<< 16) ||| (int b2 <<< 8) ||| int b3, addr+4
struct ((int b0 <<< 24) ||| (int b1 <<< 16) ||| (int b2 <<< 8) ||| int b3, addr+4)

let seekReadSByte mdv addr = sbyte (seekReadByte mdv addr)
let seekReadSingle mdv addr = singleOfBits (seekReadInt32 mdv addr)
Expand All @@ -226,11 +226,11 @@ let seekReadUTF8String mdv addr =
System.Text.Encoding.UTF8.GetString (bytes, 0, bytes.Length)

let seekReadBlob mdv addr =
let len, addr = seekReadCompressedUInt32 mdv addr
let struct (len, addr) = seekReadCompressedUInt32 mdv addr
seekReadBytes mdv addr len

let seekReadUserString mdv addr =
let len, addr = seekReadCompressedUInt32 mdv addr
let struct (len, addr) = seekReadCompressedUInt32 mdv addr
let bytes = seekReadBytes mdv addr (len - 1)
Encoding.Unicode.GetString(bytes, 0, bytes.Length)

Expand Down Expand Up @@ -1550,11 +1550,10 @@ and readBlobHeapAsTypeName ctxt (nameIdx, namespaceIdx) =

and seekReadTypeDefRowExtents (ctxt: ILMetadataReader) _info (idx: int) =
if idx >= ctxt.getNumRows TableNames.TypeDef then
ctxt.getNumRows TableNames.Field + 1,
ctxt.getNumRows TableNames.Method + 1
struct (ctxt.getNumRows TableNames.Field + 1, ctxt.getNumRows TableNames.Method + 1)
else
let (_, _, _, _, fieldsIdx, methodsIdx) = seekReadTypeDefRow ctxt (idx + 1)
fieldsIdx, methodsIdx
struct (fieldsIdx, methodsIdx )

and seekReadTypeDefRowWithExtents ctxt (idx: int) =
let info= seekReadTypeDefRow ctxt idx
Expand All @@ -1578,7 +1577,7 @@ and typeDefReader ctxtH: ILTypeDefStored =

let ((flags, nameIdx, namespaceIdx, extendsIdx, fieldsIdx, methodsIdx) as info) = seekReadTypeDefRow ctxt idx
let nm = readBlobHeapAsTypeName ctxt (nameIdx, namespaceIdx)
let (endFieldsIdx, endMethodsIdx) = seekReadTypeDefRowExtents ctxt info idx
let struct (endFieldsIdx, endMethodsIdx) = seekReadTypeDefRowExtents ctxt info idx
let typars = seekReadGenericParams ctxt 0 (tomd_TypeDef, idx)
let numtypars = typars.Length
let super = seekReadOptionalTypeDefOrRef ctxt numtypars AsObject extendsIdx
Expand Down