A Phrase_Buffer is a place to store arbitrary length strings. They are allocated in the Phrase Slab. The total size of the Phrase_Buffer will always be evenly divisible by 32. When allocated the Phrase_Pointer will be set to the beginning of the Buffer, the Phase_Length will be the full Buffer length and not just what was requested, and the Phrase_Index will be 0. The Previous_Size value is normally ignored. It is used when the Phrase_Buffer is discarded to find the previous Phrase_Buffer and merge the two if both are discarded. When discarded the Phrase_Pointer is 0, but the Phrase_Length remains valid. |