What about use a free chain buffer, It can recycle the buffer and save the memory.