empty {{ size={($T1*)EndX - ($T1*)BeginX} }} ($T1*)EndX - ($T1*)BeginX ($T1*)CapacityX - ($T1*)BeginX ($T1*)EndX - ($T1*)BeginX ($T1*)BeginX {(($T1*)BeginX)[0]}{*this,view(elt1)} , {(($T1*)BeginX)[1]}{*this,view(elt2)} , {(($T1*)BeginX)[2]}{*this,view(elt3)} , {(($T1*)BeginX)[2]}{*this,view(elt4)} , /* {(($T1*)EndX - ($T1*)BeginX) - 4} more*/ empty {{{*this,view(elt0)}}} ($T1*)EndX - ($T1*)BeginX ($T1*)CapacityX - ($T1*)BeginX ($T1*)EndX - ($T1*)BeginX ($T1*)BeginX empty {{ size={Length} }} Length Length Data {BeginX,s} BeginX,s (char*)EndX - (char*)BeginX (char*)CapacityX - (char*)BeginX (char*)EndX - (char*)BeginX (char*)BeginX {Data,[Length]s} Data,[Length]s Length Length Data {IntMask}: {($T1)(Value & PointerBitMask)} [{($T3)((Value >> IntShift) & IntMask)}] ($T1)(Value & PointerBitMask) ($T3)((Value >> IntShift) & IntMask) {"$T1", s8b}: {($T1)(Val.Value & Val.PointerBitMask)} {"$T2", s8b}: {($T2)(Val.Value & Val.PointerBitMask)} ($T1)(Val.Value & Val.PointerBitMask) ($T2)(Val.Value & Val.PointerBitMask) {"$T1", s8b}: {($T1)((Val.Val.Value >> 2) << 2)} {"$T2", s8b}: {($T2)((Val.Val.Value >> 2) << 2)} {"$T3", s8b}: {($T3)((Val.Val.Value >> 2) << 2)} ($T1)((Val.Val.Value >> 2) << 2) ($T2)((Val.Val.Value >> 2) << 2) ($T3)((Val.Val.Value >> 2) << 2) {"$T1", s8b}: {($T1)((Val.Val.Value >> 2) << 2)} {"$T2", s8b}: {($T2)((Val.Val.Value >> 2) << 2)} {"$T3", s8b}: {($T3)((Val.Val.Value >> 2) << 2)} {"$T4", s8b}: {($T4)((Val.Val.Value >> 2) << 2)} ($T1)((Val.Val.Value >> 2) << 2) ($T2)((Val.Val.Value >> 2) << 2) ($T3)((Val.Val.Value >> 2) << 2) ($T4)((Val.Val.Value >> 2) << 2) {{ empty }} {{ head={Head} }} Head Next this empty RefPtr [1 ref] {*Obj} RefPtr [{Obj->ref_cnt} refs] {*Obj} Obj->ref_cnt Obj {{ [Small Mode] size={NumElements}, capacity={CurArraySize} }} {{ [Big Mode] size={NumElements}, capacity={CurArraySize} }} NumElements CurArraySize CurArraySize ($T1*)CurArray empty {{ size={NumEntries}, buckets={NumBuckets} }} NumEntries NumBuckets NumBuckets Buckets {{ size={NumItems}, buckets={NumBuckets} }} NumItems NumBuckets NumBuckets (MapEntryTy**)TheTable empty ({this+1,s}, {second}) this+1,s second {Data} empty {*(($T1 *)(unsigned char *)storage.buffer)} *(($T1 *)(unsigned char *)storage.buffer) {{little endian value = {*(($T1*)(unsigned char *)Value.buffer)} }} (unsigned char *)Value.buffer,1 (unsigned char *)Value.buffer,2 (unsigned char *)Value.buffer,4 (unsigned char *)Value.buffer,8 {{ big endian value = {*(unsigned char *)Value.buffer} }} {{ big endian value = {(($T1)(*(unsigned char *)Value.buffer) << 8) | ($T1)(*((unsigned char *)Value.buffer+1))} }} {{ big endian value = {(($T1)(*(unsigned char *)Value.buffer) << 24) | (($T1)(*((unsigned char *)Value.buffer+1)) << 16) | (($T1)(*((unsigned char *)Value.buffer+2)) << 8) | ($T1)(*((unsigned char *)Value.buffer+3))} }} {{ big endian value = {(($T1)(*(unsigned char *)Value.buffer) << 56) | (($T1)(*((unsigned char *)Value.buffer+1)) << 48) | (($T1)(*((unsigned char *)Value.buffer+2)) << 40) | (($T1)(*((unsigned char *)Value.buffer+3)) << 32) | (($T1)(*((unsigned char *)Value.buffer+4)) << 24) | (($T1)(*((unsigned char *)Value.buffer+5)) << 16) | (($T1)(*((unsigned char *)Value.buffer+6)) << 8) | ($T1)(*((unsigned char *)Value.buffer+7))} }} (unsigned char *)Value.buffer,1 (unsigned char *)Value.buffer,2 (unsigned char *)Value.buffer,4 (unsigned char *)Value.buffer,8