Commit c60e82ea authored by Kirill Smelkov's avatar Kirill Smelkov

.

parent bb67fa9b
...@@ -318,7 +318,7 @@ func (p *AnswerLockedTransactions) NEODecode(data []byte) (int, error) { ...@@ -318,7 +318,7 @@ func (p *AnswerLockedTransactions) NEODecode(data []byte) (int, error) {
p.TidDict = make(map[Tid]Tid, l) p.TidDict = make(map[Tid]Tid, l)
m := p.TidDict m := p.TidDict
for i := 0; uint32(i) < l; i++ { for i := 0; uint32(i) < l; i++ {
key = Tid(binary.BigEndian.Uint64(data[0:])) key := Tid(binary.BigEndian.Uint64(data[0:]))
m[key] = Tid(binary.BigEndian.Uint64(data[8:])) m[key] = Tid(binary.BigEndian.Uint64(data[8:]))
data = data[16:] data = data[16:]
} }
...@@ -874,7 +874,7 @@ func (p *AnswerObjectUndoSerial) NEODecode(data []byte) (int, error) { ...@@ -874,7 +874,7 @@ func (p *AnswerObjectUndoSerial) NEODecode(data []byte) (int, error) {
}, l) }, l)
m := p.ObjectTIDDict m := p.ObjectTIDDict
for i := 0; uint32(i) < l; i++ { for i := 0; uint32(i) < l; i++ {
key = Oid(binary.BigEndian.Uint64(data[0:])) key := Oid(binary.BigEndian.Uint64(data[0:]))
m[key].CurrentSerial = Tid(binary.BigEndian.Uint64(data[8:])) m[key].CurrentSerial = Tid(binary.BigEndian.Uint64(data[8:]))
m[key].UndoSerial = Tid(binary.BigEndian.Uint64(data[16:])) m[key].UndoSerial = Tid(binary.BigEndian.Uint64(data[16:]))
m[key].IsCurrent = byte2bool((data[24:])[0]) m[key].IsCurrent = byte2bool((data[24:])[0])
...@@ -927,7 +927,7 @@ func (p *CheckReplicas) NEODecode(data []byte) (int, error) { ...@@ -927,7 +927,7 @@ func (p *CheckReplicas) NEODecode(data []byte) (int, error) {
p.PartitionDict = make(map[uint32]UUID, l) p.PartitionDict = make(map[uint32]UUID, l)
m := p.PartitionDict m := p.PartitionDict
for i := 0; uint32(i) < l; i++ { for i := 0; uint32(i) < l; i++ {
key = binary.BigEndian.Uint32(data[0:]) key := binary.BigEndian.Uint32(data[0:])
m[key] = UUID(int32(binary.BigEndian.Uint32(data[4:]))) m[key] = UUID(int32(binary.BigEndian.Uint32(data[4:])))
data = data[8:] data = data[8:]
} }
......
...@@ -250,7 +250,7 @@ func (d *decoder) emitmap(assignto string, obj types.Object, typ *types.Map) { ...@@ -250,7 +250,7 @@ func (d *decoder) emitmap(assignto string, obj types.Object, typ *types.Map) {
//d.emit("if len(data) < l { return 0, ErrDecodeOverflow }") //d.emit("if len(data) < l { return 0, ErrDecodeOverflow }")
d.emit("m := %v", assignto) d.emit("m := %v", assignto)
d.emit("for i := 0; uint32(i) < l; i++ {") d.emit("for i := 0; uint32(i) < l; i++ {")
d.emitobjtype("key", obj, typ.Key()) // TODO -> := d.emitobjtype("key:", obj, typ.Key())
d.emitobjtype("m[key]", obj, typ.Elem()) d.emitobjtype("m[key]", obj, typ.Elem())
d.emit("data = data[%v:]", d.n) // FIXME wrt map of map ? d.emit("data = data[%v:]", d.n) // FIXME wrt map of map ?
d.emit("}") d.emit("}")
...@@ -275,7 +275,9 @@ func (d *decoder) emitobjtype(assignto string, obj types.Object, typ types.Type) ...@@ -275,7 +275,9 @@ func (d *decoder) emitobjtype(assignto string, obj types.Object, typ types.Type)
// -> need to cast // -> need to cast
decoded = fmt.Sprintf("%v(%v)", typeName(typ), decoded) decoded = fmt.Sprintf("%v(%v)", typeName(typ), decoded)
} }
d.emit("%s = %s", assignto, decoded) // NOTE no space before "=" - to be able to merge with ":"
// prefix and become defining assignment
d.emit("%s= %s", assignto, decoded)
case *types.Array: case *types.Array:
// TODO optimize for [...]byte // TODO optimize for [...]byte
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment