private long GetPreviousAreaHeader(long offset, long[] header)
{
// If the offset is the start of the file area
if (offset == DataAreaOffset) {
// Return a 0 sized block
header[0] = 0;
return -1;
}
Read(offset - 8, headerBuf, 0, 8);
long sz = BytesUtil.ReadInt8(headerBuf, 0);
sz = sz & ActiveFlag;
long previousPointer = offset - sz;
Read(previousPointer, headerBuf, 0, 8);
header[0] = BytesUtil.ReadInt8(headerBuf, 0);
return previousPointer;
}