From 69bba3aa4b3f2db7c2888966c83a27848ba2d3c9 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Thu, 1 Aug 2019 10:43:17 +0200 Subject: [PATCH] ui,ui/draw: fix decoding of negative integers Signed-off-by: Elias Naur --- ui/draw/draw.go | 8 ++++---- ui/ops.go | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/ui/draw/draw.go b/ui/draw/draw.go index 52ba241e..2ddb8159 100644 --- a/ui/draw/draw.go +++ b/ui/draw/draw.go @@ -44,12 +44,12 @@ func (i *ImageOp) Decode(data []byte, refs []interface{}) { } sr := image.Rectangle{ Min: image.Point{ - X: int(bo.Uint32(data[1:])), - Y: int(bo.Uint32(data[5:])), + X: int(int32(bo.Uint32(data[1:]))), + Y: int(int32(bo.Uint32(data[5:]))), }, Max: image.Point{ - X: int(bo.Uint32(data[9:])), - Y: int(bo.Uint32(data[13:])), + X: int(int32(bo.Uint32(data[9:]))), + Y: int(int32(bo.Uint32(data[13:]))), }, } *i = ImageOp{ diff --git a/ui/ops.go b/ui/ops.go index 3bba2e9e..1f5eda0a 100644 --- a/ui/ops.go +++ b/ui/ops.go @@ -105,7 +105,7 @@ func (op *opAux) decode(data []byte) { } bo := binary.LittleEndian *op = opAux{ - len: int(bo.Uint32(data[1:])), + len: int(int32(bo.Uint32(data[1:]))), } } @@ -114,8 +114,8 @@ func (op *opMacroDef) decode(data []byte) { panic("invalid op") } bo := binary.LittleEndian - dataIdx := int(bo.Uint32(data[1:])) - refsIdx := int(bo.Uint32(data[5:])) + dataIdx := int(int32(bo.Uint32(data[1:]))) + refsIdx := int(int32(bo.Uint32(data[5:]))) *op = opMacroDef{ endpc: pc{ data: dataIdx, @@ -215,9 +215,9 @@ func (m *MacroOp) decode(data []byte, refs []interface{}) { panic("invalid op") } bo := binary.LittleEndian - dataIdx := int(bo.Uint32(data[1:])) - refsIdx := int(bo.Uint32(data[5:])) - version := int(bo.Uint32(data[9:])) + dataIdx := int(int32(bo.Uint32(data[1:]))) + refsIdx := int(int32(bo.Uint32(data[5:]))) + version := int(int32(bo.Uint32(data[9:]))) *m = MacroOp{ ops: refs[0].(*Ops), pc: pc{