// static size_t MemoryProfile::getSizeOfObject(ObjectData *obj) { auto ret = getSizeOfPtr(obj); if (ret == 0) { return 0; } if (UNLIKELY(obj->getAttribute(ObjectData::HasDynPropArr))) { auto& props = obj->dynPropArray(); ret += getSizeOfArray(props.get()); } return ret; }
// static size_t MemoryProfile::getSizeOfTV(TypedValue *tv) { if (!memory_profiling) return 0; switch (tv->m_type) { case KindOfString: return getSizeOfPtr(tv->m_data.pstr); case KindOfArray: return getSizeOfArray(tv->m_data.parr); case KindOfObject: return getSizeOfObject(tv->m_data.pobj); case KindOfRef: return getSizeOfPtr(tv->m_data.pref); default: return 0; } }
// static size_t MemoryProfile::getSizeOfTV(const TypedValue* tv) { if (!RuntimeOption::HHProfServerEnabled) return 0; switch (tv->m_type) { case KindOfString: return getSizeOfPtr(tv->m_data.pstr); case KindOfArray: return getSizeOfArray(tv->m_data.parr); case KindOfObject: return getSizeOfObject(tv->m_data.pobj); case KindOfRef: return getSizeOfPtr(tv->m_data.pref); default: return 0; } }
// static size_t MemoryProfile::getSizeOfObject(ObjectData *obj) { ArrayData* props = obj->o_properties.get(); return getSizeOfPtr(obj) + (props ? getSizeOfArray(props) : 0); }