SmartAllocatorImpl::SmartAllocatorImpl(Name name, int itemSize)
  : m_itemSize(itemSizeRoundup(itemSize)) , m_name(name) {
  assert(itemSize > 0);
  MemoryManager::TheMemoryManager()->add(this);
}
SmartAllocatorImpl::SmartAllocatorImpl(const std::type_info* typeId,
                                       uint itemSize)
  : m_itemSize(itemSizeRoundup(itemSize)) , m_typeId(typeId) {
  assert(itemSize > 0);
  MemoryManager::TheMemoryManager()->add(this);
}