Each object is separated into two parts: the metadata part (or vtable) on the left of the pivot point and the real data part to the right.
Each field corresponds to a slot in vtable, which stores the offset of the real data for that field. For example, the first slot of John’s vtable has a value of 1, indicating that John’s name is stored one byte to the right of John’s pivot point.
For object fields, the offset in vtable would be pointing to the pivot point of the child object. For example, the third slot in John’s vtable points to the pivot point of Mary.
To indicate that no data is present, we can use an offset of 0 in a vtable slot.