func (a *subAllocator) pushByte(c byte) int32 {
	si := a.heap1Lo / 6 // state index
	oi := a.heap1Lo % 6 // byte position in state
	switch oi {
	case 0:
		a.states[si].sym = c
	case 1:
		a.states[si].freq = c
	default:
		n := (uint(oi) - 2) * 8
		mask := ^(uint32(0xFF) << n)
		succ := uint32(a.states[si].succ) & mask
		succ |= uint32(c) << n
		a.states[si].succ = int32(succ)
	}
	a.heap1Lo++
	if a.heap1Lo >= a.heap1Hi {
		return 0
	}
	return -a.heap1Lo
}
func (a *subAllocator) pushByte(c byte) int32 {
	si := a.heap1Lo / 6 
	oi := a.heap1Lo % 6 
	switch oi {
	case 0:
		a.states[si].sym = c
	case 1:
		a.states[si].freq = c
	default:
		n := (uint(oi) - 2) * 8
		mask := ^(uint32(0xFF) << n)
		succ := uint32(a.states[si].succ) & mask
		succ |= uint32(c) << n
		a.states[si].succ = int32(succ)
	}
	a.heap1Lo++
	if a.heap1Lo >= a.heap1Hi {
		return 0
	}
	return -a.heap1Lo
}
func ( a * subAllocator ) pushByte ( c byte ) int32 { si := a . heap1Lo / 6 // state index oi := a . heap1Lo % 6 // byte position in state switch oi { case 0 : a . states [ si ] . sym = c case 1 : a . states [ si ] . freq = c default : n := ( uint ( oi ) - 2 ) * 8 mask := ^ ( uint32 ( 0xFF ) << n ) succ := uint32 ( a . states [ si ] . succ ) & mask succ |= uint32 ( c ) << n a . states [ si ] . succ = int32 ( succ ) } a . heap1Lo ++ if a . heap1Lo >= a . heap1Hi { return 0 } return - a . heap1Lo }
// pushByte puts a byte on the heap and returns a state.succ index that
// can be used to retrieve it.
pushByte puts a byte on the heap and returns a state . succ index that can be used to retrieve it .