diff --git a/src/Quasar/Wayland/Protocol/Core.hs b/src/Quasar/Wayland/Protocol/Core.hs index 540a42d9d215a3dbeec51ac2f9b78e9636a0e024..49af8523e39828d95c026bb3f8c81d313cd3e2ea 100644 --- a/src/Quasar/Wayland/Protocol/Core.hs +++ b/src/Quasar/Wayland/Protocol/Core.hs @@ -530,7 +530,10 @@ sendMessage object message = do putWord32host $ (fromIntegral msgSize `shiftL` 16) .|. fromIntegral opcode putLazyByteString body msgSize :: Word16 - msgSize = if msgSizeInteger <= fromIntegral (maxBound :: Word16) then fromIntegral msgSizeInteger else error "Message too large" + msgSize = + if msgSizeInteger <= fromIntegral (maxBound :: Word16) + then fromIntegral msgSizeInteger + else error "Message too large" -- TODO: body length should be returned from `putMessage`, instead of realizing it to a ByteString here msgSizeInteger :: Integer msgSizeInteger = 8 + fromIntegral (BSL.length body)