Skip to content

Commit c85d280

Browse files
committed
try to fix json-iterator#194 with larger array
1 parent e606109 commit c85d280

File tree

3 files changed

+5
-6
lines changed

3 files changed

+5
-6
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.idea
22
/coverage.txt
33
/profile.out
4+
/bug_test.go

feature_iter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ func (iter *Iterator) isObjectEnd() bool {
168168
if c == '}' {
169169
return true
170170
}
171-
iter.ReportError("isObjectEnd", "object ended prematurely")
171+
iter.ReportError("isObjectEnd", "object ended prematurely, unexpected char " + string([]byte{c}))
172172
return true
173173
}
174174

feature_reflect_slice.go

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,9 @@ func growOne(slice *sliceHeader, sliceType reflect.Type, elementType reflect.Typ
128128
dst := unsafe.Pointer(newVal.Pointer())
129129
// copy old array into new array
130130
originalBytesCount := uintptr(slice.Len) * elementType.Size()
131-
srcPtr := (*[1 << 30]byte)(slice.Data)
132-
dstPtr := (*[1 << 30]byte)(dst)
133-
for i := uintptr(0); i < originalBytesCount; i++ {
134-
dstPtr[i] = srcPtr[i]
135-
}
131+
srcPtr := (*[1 << 49]byte)(slice.Data)
132+
dstPtr := (*[1 << 49]byte)(dst)
133+
copy(dstPtr[:originalBytesCount], srcPtr[:originalBytesCount])
136134
slice.Data = dst
137135
slice.Len = newLen
138136
slice.Cap = newCap

0 commit comments

Comments
 (0)