diff options
author | Matt Mastracci <matthew@mastracci.com> | 2016-02-29 13:04:12 -0700 |
---|---|---|
committer | Matt Mastracci <matthew@mastracci.com> | 2016-07-18 18:48:39 -0600 |
commit | 36daedf35fd0cc2ad0e5e24d187b25613c13660e (patch) | |
tree | 71a4784652aced246973b8a9332168d239eaf82b | |
parent | a8d2eeee3419d13415519ba7ee356fbb05ec06cc (diff) | |
download | flatbuffers-36daedf35fd0cc2ad0e5e24d187b25613c13660e.tar.gz flatbuffers-36daedf35fd0cc2ad0e5e24d187b25613c13660e.tar.bz2 flatbuffers-36daedf35fd0cc2ad0e5e24d187b25613c13660e.zip |
Avoid unsafe when sizing types
-rw-r--r-- | go/sizes.go (renamed from go/unsafe.go) | 39 |
1 files changed, 20 insertions, 19 deletions
diff --git a/go/unsafe.go b/go/sizes.go index 566e8b0b..30b2e92d 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. |