ХМ, У меня такое подозрение, что это нечто каждый раз по разным адресам снимок складывает.
Поэтому сборщик мусора и вешается. Не знает куда сунуться.
Очень подозрительные поля buffer и context.
Там где вижу void, там меня аж передёргивает.
Почему ты void приравниваешь ANYPTR? Это же вроде как совсем не кошерно?
Если положиться на здравый смысл, то buffer -- это адрес буфера (начало массива?) Поэтому тип в ББ имеет размер  INTEGER (если 32 бита исходная шняга). context вообще на 4ый элемент массива ссылается. ОН ВООБЩЕ БЕЗТИПОВЫМ БЫТЬ НЕ МОЖЕТ!