packages feed

flatbuffers-parser 0.1.0.0 → 0.1.0.1

raw patch · 2 files changed

+7/−3 lines, 2 filesPVP: minor bump suggested

API additions: PVP suggests at least a minor version bump

API changes (from Hackage documentation)

+ Flatbuffers.Parser: ArrayOfStructOffsetAlignmentError :: Error

Files

flatbuffers-parser.cabal view
@@ -1,6 +1,6 @@ cabal-version:      3.4 name:               flatbuffers-parser-version:            0.1.0.0+version:            0.1.0.1 synopsis:           Parse flatbuffers license:            BSD-3-Clause license-file:       LICENSE
src/Flatbuffers/Parser.hs view
@@ -104,6 +104,7 @@   | ArrayOfStructOffsetOutOfBounds   | ArrayOfStructPayloadOutOfBounds !Int !Int !Int   | ArrayOffsetAlignmentError+  | ArrayOfStructOffsetAlignmentError   | FieldArrayAlignmentError   | ExpectedWord8EqButGot !Word8 !Word8   | ExpectedWord16EqButGot !Word16 !Word16@@ -386,11 +387,14 @@   when (rem effectiveOffset 4 /= 0) (Left FieldArrayAlignmentError)   let !(arrayOffset :: Word32) = LE.indexByteArray content (quot effectiveOffset 4)   let !effectiveArrayOffset = (fromIntegral @Word32 @Int arrayOffset) + effectiveOffset-  when (rem effectiveArrayOffset 4 /= 0) (Left ArrayOffsetAlignmentError)-  when (rem (effectiveArrayOffset + 4) alignment /= 0) (Left ArrayOffsetAlignmentError)+  when (rem effectiveArrayOffset 4 /= 0) (Left ArrayOfStructOffsetAlignmentError)   when (effectiveArrayOffset + 4 > end) (Left ArrayOfStructOffsetOutOfBounds)   let !(arrayLength :: Word32) = LE.indexByteArray content (quot effectiveArrayOffset 4)   let arrayLengthI = fromIntegral @Word32 @Int arrayLength+  -- We do not check the alignment of the start element when the length+  -- is zero because there is no start element.+  when (arrayLengthI > 0) $ do+    when (rem (effectiveArrayOffset + 4) alignment /= 0) (Left ArrayOfStructOffsetAlignmentError)   let !payloadSz = arrayLengthI * sz   when (effectiveArrayOffset + 4 + payloadSz > end) (Left (ArrayOfStructPayloadOutOfBounds effectiveArrayOffset payloadSz end))   let !(ByteArray arr) = runST $ do