setIntExtended method
Insert the required bytes starting from offset
Implementation
void setIntExtended(int value, int numOfBytes,
{Endian endianness = Endian.little}) {
if (Statics.isWebInt) {
var subList = Int64(value).toBytes().sublist(0, numOfBytes);
if (endianness == Endian.little) {
byteList.setRange(offset, offset + numOfBytes, subList);
} else {
byteList.setRange(offset, offset + numOfBytes, subList.reversed);
}
} else {
var byteListTmp = Uint8List(8);
var byteArrayTmp = _getByteData(byteListTmp);
if (numOfBytes == 3) {
byteArrayTmp.setInt64(0, value, endianness);
} else if (numOfBytes == 5) {
byteArrayTmp.setInt64(0, value, endianness);
} else if (numOfBytes == 7) {
byteArrayTmp.setInt64(0, value, endianness);
} else {
throw Exception('Unsupported num of bytes: $numOfBytes');
}
if (endianness == Endian.little) {
byteList.setRange(offset, offset + numOfBytes, byteListTmp);
} else {
byteList.setRange(
offset, offset + numOfBytes, byteListTmp, 8 - numOfBytes);
}
}
}