void PooledPointTable::reset() { BinaryPointTable table(m_schema); pdal::PointRef pointRef(table, 0); assert(m_cellNodes.size() >= outstanding()); Cell::PooledStack cells(m_cellNodes.pop(outstanding())); for (auto& cell : cells) { auto data(m_dataNodes.popOne()); table.setPoint(*data); if (m_origin != invalidOrigin) { pointRef.setField(pdal::Dimension::Id::PointId, m_index); pointRef.setField(pdal::Dimension::Id::OriginId, m_origin); ++m_index; } cell.set(pointRef, std::move(data)); } cells = m_process(std::move(cells)); for (auto& cell : cells) m_dataNodes.push(cell.acquire()); m_cellNodes.push(std::move(cells)); allocate(); }
uval MemDescBits::checkSanity(uval page) { uval sane = 1; if (KernelInfo::ControlFlagIsSet(KernelInfo::NO_ALLOC_SANITY_CHECK)) { return sane; } uval freeBlocks = countFreeBlocks(page); uval numBlocks = ALLOC_PAGE_SIZE / AllocPool::MallocIDToSize(mallocID()); // code this way to make added more checks easier sane = sane && (freeBlocks == (numBlocks - outstanding())); tassertWrn(sane, "MDB: %lx - %ld != (%ld - %ld)\n", page, freeBlocks, numBlocks, outstanding()); return sane; }