in src/com/amazon/ion/impl/lite/ReverseBinaryEncoder.java [360:457]
private void writeUInt(long v)
{
int offset = myOffset;
if (v < (1L << (8 * 1)))
{
if (--offset < 0) {
offset = growBuffer(offset);
}
myBuffer[offset] = (byte) v;
}
else if (v < (1L << (8 * 2)))
{
offset -= 2;
if (offset < 0) {
offset = growBuffer(offset);
}
myBuffer[offset] = (byte) (v >>> (8 * 1));
myBuffer[offset+1] = (byte) v;
}
else if (v < (1L << (8 * 3)))
{
offset -= 3;
if (offset < 0) {
offset = growBuffer(offset);
}
myBuffer[offset] = (byte) (v >>> (8 * 2));
myBuffer[offset+1] = (byte) (v >>> (8 * 1));
myBuffer[offset+2] = (byte) v;
}
else if (v < (1L << (8 * 4)))
{
offset -= 4;
if (offset < 0) {
offset = growBuffer(offset);
}
myBuffer[offset] = (byte) (v >>> (8 * 3));
myBuffer[offset+1] = (byte) (v >>> (8 * 2));
myBuffer[offset+2] = (byte) (v >>> (8 * 1));
myBuffer[offset+3] = (byte) v;
}
else if (v < (1L << (8 * 5)))
{
offset -= 5;
if (offset < 0) {
offset = growBuffer(offset);
}
myBuffer[offset] = (byte) (v >>> (8 * 4));
myBuffer[offset+1] = (byte) (v >>> (8 * 3));
myBuffer[offset+2] = (byte) (v >>> (8 * 2));
myBuffer[offset+3] = (byte) (v >>> (8 * 1));
myBuffer[offset+4] = (byte) v;
}
else if (v < (1L << (8 * 6)))
{
offset -= 6;
if (offset < 0) {
offset = growBuffer(offset);
}
myBuffer[offset] = (byte) (v >>> (8 * 5));
myBuffer[offset+1] = (byte) (v >>> (8 * 4));
myBuffer[offset+2] = (byte) (v >>> (8 * 3));
myBuffer[offset+3] = (byte) (v >>> (8 * 2));
myBuffer[offset+4] = (byte) (v >>> (8 * 1));
myBuffer[offset+5] = (byte) v;
}
else if (v < (1L << (8 * 7)))
{
offset -= 7;
if (offset < 0) {
offset = growBuffer(offset);
}
myBuffer[offset] = (byte) (v >>> (8 * 6));
myBuffer[offset+1] = (byte) (v >>> (8 * 5));
myBuffer[offset+2] = (byte) (v >>> (8 * 4));
myBuffer[offset+3] = (byte) (v >>> (8 * 3));
myBuffer[offset+4] = (byte) (v >>> (8 * 2));
myBuffer[offset+5] = (byte) (v >>> (8 * 1));
myBuffer[offset+6] = (byte) v;
}
else
{
offset -= 8;
if (offset < 0) {
offset = growBuffer(offset);
}
myBuffer[offset] = (byte) (v >>> (8 * 7));
myBuffer[offset+1] = (byte) (v >>> (8 * 6));
myBuffer[offset+2] = (byte) (v >>> (8 * 5));
myBuffer[offset+3] = (byte) (v >>> (8 * 4));
myBuffer[offset+4] = (byte) (v >>> (8 * 3));
myBuffer[offset+5] = (byte) (v >>> (8 * 2));
myBuffer[offset+6] = (byte) (v >>> (8 * 1));
myBuffer[offset+7] = (byte) v;
}
myOffset = offset;
}