internal unsafe StringReferenceChunk(ChunkHeader* header)
: base(header)
{
var begin = (byte*)ChunkHeader.ChunkBegin(header);
var end = begin + header->Size;
var curBegin = begin;
var cur = begin;
Strings = new List<StringReference>();
while(cur < end)
{
if (*cur == 0)
{
var length = (int)(cur - curBegin);
if (length > 0)
{
Strings.Add(new StringReference
{
String = Marshal.PtrToStringAnsi((IntPtr)curBegin, length),
Offset = (int)(curBegin - begin)
});
}
curBegin = cur + 1;
}
cur++;
}
}