XPT_NewArena(uint32_t block_size, size_t alignment, const char* name) { XPTArena *arena = calloc(1, sizeof(XPTArena)); if (arena) { XPT_ASSERT(alignment); if (alignment > sizeof(double)) alignment = sizeof(double); arena->alignment = alignment; if (block_size < XPT_MIN_BLOCK_SIZE) block_size = XPT_MIN_BLOCK_SIZE; arena->block_size = ALIGN_RND(block_size, alignment); /* must have room for at least one item! */ XPT_ASSERT(arena->block_size >= ALIGN_RND(sizeof(BLK_HDR), alignment) + ALIGN_RND(1, alignment)); if (name) { arena->name = XPT_STRDUP(arena, name); #ifdef XPT_ARENA_LOGGING /* fudge the stats since we are using space in the arena */ arena->LOG_MallocCallCount = 0; arena->LOG_MallocTotalBytesRequested = 0; arena->LOG_MallocTotalBytesUsed = 0; #endif /* XPT_ARENA_LOGGING */ } } return arena; }
xptiZipItem::xptiZipItem(const xptiZipItem& r, xptiWorkingSet* aWorkingSet) : #ifdef DEBUG mDEBUG_WorkingSet(aWorkingSet), #endif mName(nsnull), mGuts(nsnull) { MOZ_COUNT_CTOR(xptiZipItem); NS_ASSERTION(aWorkingSet,"bad param"); mName = XPT_STRDUP(aWorkingSet->GetStringArena(), r.mName); }