Fix resolve conflict to #55

This commit is contained in:
Koichi Shiraishi 2020-11-16 23:39:33 +09:00
parent bfa3640e2b
commit 96528cbae4
No known key found for this signature in database
GPG Key ID: A71DFD3B4DA7A79B
1 changed files with 5 additions and 5 deletions

View File

@ -187,8 +187,8 @@ func (e *Encoder) run(ctx *encodeRuntimeContext, code *opcode) error {
code = code.next code = code.next
case opBytesIndent: case opBytesIndent:
ptr := load(ctxptr, code.idx) ptr := load(ctxptr, code.idx)
header := (*reflect.SliceHeader)(unsafe.Pointer(ptr)) header := (*sliceHeader)(unsafe.Pointer(&ptr))
if ptr == 0 || header.Data == 0 { if ptr == 0 || uintptr(header.data) == 0 {
e.encodeNull() e.encodeNull()
} else { } else {
e.encodeByteSlice(e.ptrToBytes(ptr)) e.encodeByteSlice(e.ptrToBytes(ptr))
@ -205,7 +205,7 @@ func (e *Encoder) run(ctx *encodeRuntimeContext, code *opcode) error {
} }
v := *(*interface{})(unsafe.Pointer(&interfaceHeader{ v := *(*interface{})(unsafe.Pointer(&interfaceHeader{
typ: code.typ, typ: code.typ,
ptr: unsafe.Pointer(ptr), ptr: *(*unsafe.Pointer)(unsafe.Pointer(&ptr)),
})) }))
if _, exists := seenPtr[ptr]; exists { if _, exists := seenPtr[ptr]; exists {
return &UnsupportedValueError{ return &UnsupportedValueError{
@ -407,7 +407,7 @@ func (e *Encoder) run(ctx *encodeRuntimeContext, code *opcode) error {
ptr := load(ctxptr, code.idx) ptr := load(ctxptr, code.idx)
v := *(*interface{})(unsafe.Pointer(&interfaceHeader{ v := *(*interface{})(unsafe.Pointer(&interfaceHeader{
typ: code.typ, typ: code.typ,
ptr: unsafe.Pointer(ptr), ptr: *(*unsafe.Pointer)(unsafe.Pointer(&ptr)),
})) }))
b, err := v.(Marshaler).MarshalJSON() b, err := v.(Marshaler).MarshalJSON()
if err != nil { if err != nil {
@ -472,7 +472,7 @@ func (e *Encoder) run(ctx *encodeRuntimeContext, code *opcode) error {
case opMarshalTextIndent: case opMarshalTextIndent:
ptr := load(ctxptr, code.idx) ptr := load(ctxptr, code.idx)
isPtr := code.typ.Kind() == reflect.Ptr isPtr := code.typ.Kind() == reflect.Ptr
p := unsafe.Pointer(ptr) p := *(*unsafe.Pointer)(unsafe.Pointer(&ptr))
if p == nil { if p == nil {
e.encodeNull() e.encodeNull()
e.encodeBytes([]byte{',', '\n'}) e.encodeBytes([]byte{',', '\n'})