From 36daedf35fd0cc2ad0e5e24d187b25613c13660e Mon Sep 17 00:00:00 2001 From: Matt Mastracci Date: Mon, 29 Feb 2016 13:04:12 -0700 Subject: [PATCH] Avoid unsafe when sizing types --- go/{unsafe.go => sizes.go} | 39 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) rename go/{unsafe.go => sizes.go} (59%) diff --git a/go/unsafe.go b/go/sizes.go similarity index 59% rename from go/unsafe.go rename to go/sizes.go index 566e8b0bb..30b2e92d6 100644 --- a/go/unsafe.go +++ b/go/sizes.go @@ -1,47 +1,48 @@ package flatbuffers -import "unsafe" - -var ( +const ( // See http://golang.org/ref/spec#Numeric_types // SizeUint8 is the byte size of a uint8. - SizeUint8 = int(unsafe.Sizeof(uint8(0))) + SizeUint8 = 1 // SizeUint16 is the byte size of a uint16. - SizeUint16 = int(unsafe.Sizeof(uint16(0))) + SizeUint16 = 2 // SizeUint32 is the byte size of a uint32. - SizeUint32 = int(unsafe.Sizeof(uint32(0))) + SizeUint32 = 4 // SizeUint64 is the byte size of a uint64. - SizeUint64 = int(unsafe.Sizeof(uint64(0))) + SizeUint64 = 8 - // SizeInt8 is the byte size of a int8. - SizeInt8 = int(unsafe.Sizeof(int8(0))) + // SizeInt8 is the byte size of a int8. + SizeInt8 = 1 // SizeInt16 is the byte size of a int16. - SizeInt16 = int(unsafe.Sizeof(int16(0))) + SizeInt16 = 2 // SizeInt32 is the byte size of a int32. - SizeInt32 = int(unsafe.Sizeof(int32(0))) + SizeInt32 = 4 // SizeInt64 is the byte size of a int64. - SizeInt64 = int(unsafe.Sizeof(int64(0))) + SizeInt64 = 8 // SizeFloat32 is the byte size of a float32. - SizeFloat32 = int(unsafe.Sizeof(float32(0))) + SizeFloat32 = 4 // SizeFloat64 is the byte size of a float64. - SizeFloat64 = int(unsafe.Sizeof(float64(0))) + SizeFloat64 = 8 // SizeByte is the byte size of a byte. // The `byte` type is aliased (by Go definition) to uint8. - SizeByte = SizeUint8 + SizeByte = 1 // SizeBool is the byte size of a bool. // The `bool` type is aliased (by flatbuffers convention) to uint8. - SizeBool = SizeUint8 + SizeBool = 1 // SizeSOffsetT is the byte size of an SOffsetT. - SizeSOffsetT = int(unsafe.Sizeof(SOffsetT(0))) + // The `SOffsetT` type is aliased (by flatbuffers convention) to int32. + SizeSOffsetT = 4 // SizeUOffsetT is the byte size of an UOffsetT. - SizeUOffsetT = int(unsafe.Sizeof(UOffsetT(0))) + // The `UOffsetT` type is aliased (by flatbuffers convention) to uint32. + SizeUOffsetT = 4 // SizeVOffsetT is the byte size of an VOffsetT. - SizeVOffsetT = int(unsafe.Sizeof(VOffsetT(0))) + // The `VOffsetT` type is aliased (by flatbuffers convention) to uint16. + SizeVOffsetT = 2 ) // byteSliceToString converts a []byte to string without a heap allocation.