fix overflow for 32-bit architecture

pull/8993/head
Stuart Carnie 2017-10-20 10:22:28 -07:00
parent 9119c6ff9a
commit ac3bf300d3
2 changed files with 8 additions and 8 deletions

View File

@ -51,12 +51,12 @@ func newID(id int, gid GID) ID {
return ID(gid)<<gidShift + (ID(id) & idMask)
}
func (id ID) id() int {
return int(id & idMask)
func (id ID) id() uint32 {
return uint32(id & idMask)
}
func (id ID) gid() int {
return int(id >> gidShift)
func (id ID) gid() uint32 {
return uint32(id >> gidShift)
}
func (id *ID) setGID(gid GID) {

View File

@ -9,13 +9,13 @@ import (
func TestID_newID(t *testing.T) {
var id = newID(0xff, 0xff0f0fff)
assert.Equal(t, id, ID(0xff0f0fff000000ff))
assert.Equal(t, id.id(), 0xff)
assert.Equal(t, id.gid(), 0xff0f0fff)
assert.Equal(t, id.id(), uint32(0xff))
assert.Equal(t, id.gid(), uint32(0xff0f0fff))
}
func TestID_setGID(t *testing.T) {
var id = ID(1)
assert.Equal(t, id.gid(), 0)
assert.Equal(t, id.gid(), uint32(0))
id.setGID(1)
assert.Equal(t, id.gid(), 1)
assert.Equal(t, id.gid(), uint32(1))
}