summaryrefslogtreecommitdiff
path: root/vendor/github.com/gogo/protobuf/proto/encode_gogo.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gogo/protobuf/proto/encode_gogo.go')
-rw-r--r--vendor/github.com/gogo/protobuf/proto/encode_gogo.go16
1 files changed, 6 insertions, 10 deletions
diff --git a/vendor/github.com/gogo/protobuf/proto/encode_gogo.go b/vendor/github.com/gogo/protobuf/proto/encode_gogo.go
index 66e7e1630..32111b7f4 100644
--- a/vendor/github.com/gogo/protobuf/proto/encode_gogo.go
+++ b/vendor/github.com/gogo/protobuf/proto/encode_gogo.go
@@ -196,12 +196,10 @@ func size_ref_struct_message(p *Properties, base structPointer) int {
// Encode a slice of references to message struct pointers ([]struct).
func (o *Buffer) enc_slice_ref_struct_message(p *Properties, base structPointer) error {
var state errorState
- ss := structPointer_GetStructPointer(base, p.field)
- ss1 := structPointer_GetRefStructPointer(ss, field(0))
- size := p.stype.Size()
- l := structPointer_Len(base, p.field)
+ ss := structPointer_StructRefSlice(base, p.field, p.stype.Size())
+ l := ss.Len()
for i := 0; i < l; i++ {
- structp := structPointer_Add(ss1, field(uintptr(i)*size))
+ structp := ss.Index(i)
if structPointer_IsNil(structp) {
return errRepeatedHasNil
}
@@ -233,13 +231,11 @@ func (o *Buffer) enc_slice_ref_struct_message(p *Properties, base structPointer)
//TODO this is only copied, please fix this
func size_slice_ref_struct_message(p *Properties, base structPointer) (n int) {
- ss := structPointer_GetStructPointer(base, p.field)
- ss1 := structPointer_GetRefStructPointer(ss, field(0))
- size := p.stype.Size()
- l := structPointer_Len(base, p.field)
+ ss := structPointer_StructRefSlice(base, p.field, p.stype.Size())
+ l := ss.Len()
n += l * len(p.tagcode)
for i := 0; i < l; i++ {
- structp := structPointer_Add(ss1, field(uintptr(i)*size))
+ structp := ss.Index(i)
if structPointer_IsNil(structp) {
return // return the size up to this point
}