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{