This change saves approximately 25 percent of memory used for the record log in process record (my empirical measurement). It's based on the observation that the objects that we save (registers and small memory writes) are frequently the size of a pointer (or smaller). Therefore, instead of allocating both a pointer and some malloc memory to hold them, they can simply be saved in the space used for the pointer itself. Saves of larger objects (bigger memory saves, or unusually large registers) will still fall back to the old method. This should also represent a huge saving in heap fragmentation, since the vast majority of the mallocs would have been 4 bytes or 8 bytes.