diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2019-09-05 19:44:43 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-05 19:44:43 +0200 |
commit | cef5bec06b200ffa5caed46db296e55fb7d72376 (patch) | |
tree | 2dd8944e49a07b8f067f07ac8c880244f97dbdb8 /vendor/github.com/json-iterator/go/iter_skip.go | |
parent | 3f81f4409d41510dd7440af9a3321c949ca485a0 (diff) | |
parent | f66a2069f1b26ff9987b008ba4b0c91ac3b682cc (diff) | |
download | podman-cef5bec06b200ffa5caed46db296e55fb7d72376.tar.gz podman-cef5bec06b200ffa5caed46db296e55fb7d72376.tar.bz2 podman-cef5bec06b200ffa5caed46db296e55fb7d72376.zip |
Merge pull request #3948 from openSUSE/buildah-update
Update buildah to v1.11.0
Diffstat (limited to 'vendor/github.com/json-iterator/go/iter_skip.go')
-rw-r--r-- | vendor/github.com/json-iterator/go/iter_skip.go | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/vendor/github.com/json-iterator/go/iter_skip.go b/vendor/github.com/json-iterator/go/iter_skip.go index f58beb913..e91eefb15 100644 --- a/vendor/github.com/json-iterator/go/iter_skip.go +++ b/vendor/github.com/json-iterator/go/iter_skip.go @@ -37,17 +37,24 @@ func (iter *Iterator) SkipAndReturnBytes() []byte { return iter.stopCapture() } -type captureBuffer struct { - startedAt int - captured []byte +// SkipAndAppendBytes skips next JSON element and appends its content to +// buffer, returning the result. +func (iter *Iterator) SkipAndAppendBytes(buf []byte) []byte { + iter.startCaptureTo(buf, iter.head) + iter.Skip() + return iter.stopCapture() } -func (iter *Iterator) startCapture(captureStartedAt int) { +func (iter *Iterator) startCaptureTo(buf []byte, captureStartedAt int) { if iter.captured != nil { panic("already in capture mode") } iter.captureStartedAt = captureStartedAt - iter.captured = make([]byte, 0, 32) + iter.captured = buf +} + +func (iter *Iterator) startCapture(captureStartedAt int) { + iter.startCaptureTo(make([]byte, 0, 32), captureStartedAt) } func (iter *Iterator) stopCapture() []byte { @@ -58,13 +65,7 @@ func (iter *Iterator) stopCapture() []byte { remaining := iter.buf[iter.captureStartedAt:iter.head] iter.captureStartedAt = -1 iter.captured = nil - if len(captured) == 0 { - copied := make([]byte, len(remaining)) - copy(copied, remaining) - return copied - } - captured = append(captured, remaining...) - return captured + return append(captured, remaining...) } // Skip skips a json object and positions to relatively the next json object |