TreeBuffer

class TreeBuffer extends TastyBuffer
class Object
trait Matchable
class Any

Value members

Concrete methods

def addrOfTree(tree: Tree): Addr
def adjusted(x: Addr): Addr

The address to which x is translated under compression

The address to which x is translated under compression

Final assembly, involving the following steps:

Final assembly, involving the following steps:

  • compute deltas
  • adjust deltas until additional savings are < 1% of total
  • adjust offsets according to the adjusted deltas
  • shrink buffer, skipping zeroes.
def deltaAt(at: Addr): Int

The amount by which the bytes at the given address are shifted under compression

The amount by which the bytes at the given address are shifted under compression

def fillRef(at: Addr, target: Addr, relative: Boolean): Unit

Fill previously reserved field with a reference

Fill previously reserved field with a reference

def reserveRef(relative: Boolean): Addr

Reserve space for a reference, to be adjusted later

Reserve space for a reference, to be adjusted later

def writeRef(target: Addr): Unit

Write reference right adjusted into freshly reserved field.

Write reference right adjusted into freshly reserved field.

Inherited methods

def assemble(): Unit

Hook to be overridden in subclasses. Perform all actions necessary to assemble the final byte array. After assemble no more output actions to this buffer are permitted.

Hook to be overridden in subclasses. Perform all actions necessary to assemble the final byte array. After assemble no more output actions to this buffer are permitted.

Inherited from
TastyBuffer

The address referring to the end of data written so far

The address referring to the end of data written so far

Inherited from
TastyBuffer
def fillAddr(at: Addr, target: Addr): Unit

Fill reserved space at address at with address target

Fill reserved space at address at with address target

Inherited from
TastyBuffer
def getAddr(at: Addr): Addr

The address (represented as a natural number) at address at

The address (represented as a natural number) at address at

Inherited from
TastyBuffer
def getByte(at: Addr): Int

The byte at given address

The byte at given address

Inherited from
TastyBuffer
def getLongNat(at: Addr): Long

The long natural number at address at

The long natural number at address at

Inherited from
TastyBuffer
def getNat(at: Addr): Int

The natural number at address at

The natural number at address at

Inherited from
TastyBuffer
def putNat(at: Addr, x: Int, width: Int): Unit

Write natural number x right-adjusted in a field of width bytes starting with address at.

Write natural number x right-adjusted in a field of width bytes starting with address at.

Inherited from
TastyBuffer

Reserve AddrWidth bytes to write an address into

Reserve AddrWidth bytes to write an address into

Inherited from
TastyBuffer
final def skipNat(at: Addr): Addr

The address after the natural number found at address at.

The address after the natural number found at address at.

Inherited from
TastyBuffer
final def skipZeroes(at: Addr): Addr

The smallest address equal to or following at which points to a non-zero byte

The smallest address equal to or following at which points to a non-zero byte

Inherited from
TastyBuffer
def writeAddr(addr: Addr): Unit

Write address without leading zeroes

Write address without leading zeroes

Inherited from
TastyBuffer
def writeByte(b: Int): Unit

Write a byte of data.

Write a byte of data.

Inherited from
TastyBuffer
def writeBytes(data: Array[Byte], n: Int): Unit

Write the first n bytes of data.

Write the first n bytes of data.

Inherited from
TastyBuffer
def writeInt(x: Int): Unit

Write a natural number in 2's complement big endian format, base 128. All but the last digits have bit 0x80 set.

Write a natural number in 2's complement big endian format, base 128. All but the last digits have bit 0x80 set.

Inherited from
TastyBuffer

Like writeInt, but for longs

Like writeInt, but for longs

Inherited from
TastyBuffer

Like writeNat, but for longs. Note that the binary representation of LongNat is identical to Nat if the long value is in the range Int.MIN_VALUE to Int.MAX_VALUE.

Like writeNat, but for longs. Note that the binary representation of LongNat is identical to Nat if the long value is in the range Int.MIN_VALUE to Int.MAX_VALUE.

Inherited from
TastyBuffer
def writeNat(x: Int): Unit

Write a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.

Write a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.

Inherited from
TastyBuffer

Write an uncompressed Long stored in 8 bytes in big endian format

Write an uncompressed Long stored in 8 bytes in big endian format

Inherited from
TastyBuffer

Inherited fields

The current byte array, will be expanded as needed

The current byte array, will be expanded as needed

Inherited from
TastyBuffer
var length: Int

The number of bytes written

The number of bytes written

Inherited from
TastyBuffer