summaryrefslogtreecommitdiff
path: root/vendor/github.com/mailru/easyjson/jlexer/bytestostr.go
diff options
context:
space:
mode:
authorMatthew Heon <matthew.heon@gmail.com>2018-08-22 10:59:53 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2018-08-24 19:19:43 +0000
commit20a625ba776aee115b872d092a61313fbc8240be (patch)
tree61d57b261445769987a9215e26db678334b98327 /vendor/github.com/mailru/easyjson/jlexer/bytestostr.go
parent714dbbda9e1f3ec98d75a07ed4c5442ea6540680 (diff)
downloadpodman-20a625ba776aee115b872d092a61313fbc8240be.tar.gz
podman-20a625ba776aee115b872d092a61313fbc8240be.tar.bz2
podman-20a625ba776aee115b872d092a61313fbc8240be.zip
Vendor easyjson code to fix build
To ensure we can build without easyjson installed, vendor the easyjson repository as the generated files use the easyjson library. Signed-off-by: Matthew Heon <matthew.heon@gmail.com> Closes: #1322 Approved by: mheon
Diffstat (limited to 'vendor/github.com/mailru/easyjson/jlexer/bytestostr.go')
-rw-r--r--vendor/github.com/mailru/easyjson/jlexer/bytestostr.go24
1 files changed, 24 insertions, 0 deletions
diff --git a/vendor/github.com/mailru/easyjson/jlexer/bytestostr.go b/vendor/github.com/mailru/easyjson/jlexer/bytestostr.go
new file mode 100644
index 000000000..ff7b27c5b
--- /dev/null
+++ b/vendor/github.com/mailru/easyjson/jlexer/bytestostr.go
@@ -0,0 +1,24 @@
+// This file will only be included to the build if neither
+// easyjson_nounsafe nor appengine build tag is set. See README notes
+// for more details.
+
+//+build !easyjson_nounsafe
+//+build !appengine
+
+package jlexer
+
+import (
+ "reflect"
+ "unsafe"
+)
+
+// bytesToStr creates a string pointing at the slice to avoid copying.
+//
+// Warning: the string returned by the function should be used with care, as the whole input data
+// chunk may be either blocked from being freed by GC because of a single string or the buffer.Data
+// may be garbage-collected even when the string exists.
+func bytesToStr(data []byte) string {
+ h := (*reflect.SliceHeader)(unsafe.Pointer(&data))
+ shdr := reflect.StringHeader{Data: h.Data, Len: h.Len}
+ return *(*string)(unsafe.Pointer(&shdr))
+}