Exemplo n.º 1
0
// 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;
}
Exemplo n.º 2
0
// 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;
  }
}
Exemplo n.º 3
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;
  }
}
Exemplo n.º 4
0
// static
size_t MemoryProfile::getSizeOfObject(ObjectData *obj) {
  ArrayData* props = obj->o_properties.get();
  return getSizeOfPtr(obj) + (props ? getSizeOfArray(props) : 0);
}