in spark/hbase-spark/src/main/scala/org/apache/hadoop/hbase/spark/datasources/Utils.scala [90:119]
def incrementByteArray(array: Array[Byte]): Array[Byte] = {
if (array.length == 0) {
return null
}
var index = -1 // index of the byte we have to increment
var a = array.length - 1
while (a >= 0) {
if (array(a) != (-1).toByte) {
index = a
a = -1 // break from the loop because we found a non -1 element
}
a = a - 1
}
if (index < 0) {
return null
}
val returnArray = new Array[Byte](array.length)
for (a <- 0 until index) {
returnArray(a) = array(a)
}
returnArray(index) = (array(index) + 1).toByte
for (a <- index + 1 until array.length) {
returnArray(a) = 0.toByte
}
returnArray
}