ScriptDebugServer::~ScriptDebugServer() { deleteAllValues(m_pageListenersMap); }
Step::~Step() { deleteAllValues(m_predicates); }
JSGlobalData::~JSGlobalData() { // By the time this is destroyed, heap.destroy() must already have been called. delete interpreter; #ifndef NDEBUG // Zeroing out to make the behavior more predictable when someone attempts to use a deleted instance. interpreter = 0; #endif arrayPrototypeTable->deleteTable(); arrayConstructorTable->deleteTable(); booleanPrototypeTable->deleteTable(); dateTable->deleteTable(); dateConstructorTable->deleteTable(); errorPrototypeTable->deleteTable(); globalObjectTable->deleteTable(); jsonTable->deleteTable(); mathTable->deleteTable(); numberConstructorTable->deleteTable(); numberPrototypeTable->deleteTable(); objectConstructorTable->deleteTable(); objectPrototypeTable->deleteTable(); regExpTable->deleteTable(); regExpConstructorTable->deleteTable(); regExpPrototypeTable->deleteTable(); stringTable->deleteTable(); stringConstructorTable->deleteTable(); fastDelete(const_cast<HashTable*>(arrayConstructorTable)); fastDelete(const_cast<HashTable*>(arrayPrototypeTable)); fastDelete(const_cast<HashTable*>(booleanPrototypeTable)); fastDelete(const_cast<HashTable*>(dateTable)); fastDelete(const_cast<HashTable*>(dateConstructorTable)); fastDelete(const_cast<HashTable*>(errorPrototypeTable)); fastDelete(const_cast<HashTable*>(globalObjectTable)); fastDelete(const_cast<HashTable*>(jsonTable)); fastDelete(const_cast<HashTable*>(mathTable)); fastDelete(const_cast<HashTable*>(numberConstructorTable)); fastDelete(const_cast<HashTable*>(numberPrototypeTable)); fastDelete(const_cast<HashTable*>(objectConstructorTable)); fastDelete(const_cast<HashTable*>(objectPrototypeTable)); fastDelete(const_cast<HashTable*>(regExpTable)); fastDelete(const_cast<HashTable*>(regExpConstructorTable)); fastDelete(const_cast<HashTable*>(regExpPrototypeTable)); fastDelete(const_cast<HashTable*>(stringTable)); fastDelete(const_cast<HashTable*>(stringConstructorTable)); delete parser; delete lexer; deleteAllValues(opaqueJSClassData); delete emptyList; delete propertyNames; if (globalDataType != Default) deleteIdentifierTable(identifierTable); delete clientData; delete m_regExpCache; #if ENABLE(REGEXP_TRACING) delete m_rtTraceList; #endif }
void InPageSearchManager::cancelPendingScopingEffort() { deleteAllValues(m_deferredScopingWork); m_deferredScopingWork.clear(); }
CSSImageGeneratorValue::~CSSImageGeneratorValue() { deleteAllValues(m_images); }
SVGDocumentExtensions::~SVGDocumentExtensions() { deleteAllValues(m_animatedElements); deleteAllValues(m_pendingResources); deleteAllValues(m_pendingResourcesForRemoval); }
AnimationControllerPrivate::~AnimationControllerPrivate() { deleteAllValues(m_compositeAnimations); }
SVGDocumentExtensions::~SVGDocumentExtensions() { deleteAllValues(m_pendingResources); }
RenderSVGResourceGradient::~RenderSVGResourceGradient() { deleteAllValues(m_gradient); m_gradient.clear(); }
RenderSVGResourceFilter::~RenderSVGResourceFilter() { deleteAllValues(m_filter); m_filter.clear(); }
Filter::~Filter() { delete m_expr; deleteAllValues(m_predicates); }
void SourceProviderCache::clear() { deleteAllValues(m_map); m_map.clear(); m_contentByteSize = 0; }
MediaList::~MediaList() { deleteAllValues(m_queries); }
BalClass::~BalClass() { deleteAllValues(m_methods); deleteAllValues(m_fields); }
SourceProviderCache::~SourceProviderCache() { deleteAllValues(m_map); }
ProgressTracker::~ProgressTracker() { deleteAllValues(m_progressItems); }
Expression::~Expression() { deleteAllValues(m_subExpressions); }
void RenderView::setSelection(RenderObject* start, int startPos, RenderObject* end, int endPos, SelectionRepaintMode blockRepaintMode) { // Make sure both our start and end objects are defined. // Check www.msnbc.com and try clicking around to find the case where this happened. if ((start && !end) || (end && !start)) return; // Just return if the selection hasn't changed. if (m_selectionStart == start && m_selectionStartPos == startPos && m_selectionEnd == end && m_selectionEndPos == endPos) return; // Record the old selected objects. These will be used later // when we compare against the new selected objects. int oldStartPos = m_selectionStartPos; int oldEndPos = m_selectionEndPos; // Objects each have a single selection rect to examine. typedef HashMap<RenderObject*, RenderSelectionInfo*> SelectedObjectMap; SelectedObjectMap oldSelectedObjects; SelectedObjectMap newSelectedObjects; // Blocks contain selected objects and fill gaps between them, either on the left, right, or in between lines and blocks. // In order to get the repaint rect right, we have to examine left, middle, and right rects individually, since otherwise // the union of those rects might remain the same even when changes have occurred. typedef HashMap<RenderBlock*, RenderBlockSelectionInfo*> SelectedBlockMap; SelectedBlockMap oldSelectedBlocks; SelectedBlockMap newSelectedBlocks; RenderObject* os = m_selectionStart; RenderObject* stop = rendererAfterPosition(m_selectionEnd, m_selectionEndPos); while (os && os != stop) { if ((os->canBeSelectionLeaf() || os == m_selectionStart || os == m_selectionEnd) && os->selectionState() != SelectionNone) { // Blocks are responsible for painting line gaps and margin gaps. They must be examined as well. oldSelectedObjects.set(os, new RenderSelectionInfo(os, true)); RenderBlock* cb = os->containingBlock(); while (cb && !cb->isRenderView()) { RenderBlockSelectionInfo* blockInfo = oldSelectedBlocks.get(cb); if (blockInfo) break; oldSelectedBlocks.set(cb, new RenderBlockSelectionInfo(cb)); cb = cb->containingBlock(); } } os = os->nextInPreOrder(); } // Now clear the selection. SelectedObjectMap::iterator oldObjectsEnd = oldSelectedObjects.end(); for (SelectedObjectMap::iterator i = oldSelectedObjects.begin(); i != oldObjectsEnd; ++i) i->first->setSelectionState(SelectionNone); // set selection start and end m_selectionStart = start; m_selectionStartPos = startPos; m_selectionEnd = end; m_selectionEndPos = endPos; // Update the selection status of all objects between m_selectionStart and m_selectionEnd if (start && start == end) start->setSelectionState(SelectionBoth); else { if (start) start->setSelectionState(SelectionStart); if (end) end->setSelectionState(SelectionEnd); } RenderObject* o = start; stop = rendererAfterPosition(end, endPos); while (o && o != stop) { if (o != start && o != end && o->canBeSelectionLeaf()) o->setSelectionState(SelectionInside); o = o->nextInPreOrder(); } m_layer->clearBlockSelectionGapsBounds(); // Now that the selection state has been updated for the new objects, walk them again and // put them in the new objects list. o = start; while (o && o != stop) { if ((o->canBeSelectionLeaf() || o == start || o == end) && o->selectionState() != SelectionNone) { newSelectedObjects.set(o, new RenderSelectionInfo(o, true)); RenderBlock* cb = o->containingBlock(); while (cb && !cb->isRenderView()) { RenderBlockSelectionInfo* blockInfo = newSelectedBlocks.get(cb); if (blockInfo) break; newSelectedBlocks.set(cb, new RenderBlockSelectionInfo(cb)); cb = cb->containingBlock(); } } o = o->nextInPreOrder(); } if (!m_frameView) { // We built the maps, but we aren't going to use them. // We need to delete the values, otherwise they'll all leak! deleteAllValues(oldSelectedObjects); deleteAllValues(newSelectedObjects); deleteAllValues(oldSelectedBlocks); deleteAllValues(newSelectedBlocks); return; } m_frameView->beginDeferredRepaints(); // Have any of the old selected objects changed compared to the new selection? for (SelectedObjectMap::iterator i = oldSelectedObjects.begin(); i != oldObjectsEnd; ++i) { RenderObject* obj = i->first; RenderSelectionInfo* newInfo = newSelectedObjects.get(obj); RenderSelectionInfo* oldInfo = i->second; if (!newInfo || oldInfo->rect() != newInfo->rect() || oldInfo->state() != newInfo->state() || (m_selectionStart == obj && oldStartPos != m_selectionStartPos) || (m_selectionEnd == obj && oldEndPos != m_selectionEndPos)) { oldInfo->repaint(); if (newInfo) { newInfo->repaint(); newSelectedObjects.remove(obj); delete newInfo; } } delete oldInfo; } // Any new objects that remain were not found in the old objects dict, and so they need to be updated. SelectedObjectMap::iterator newObjectsEnd = newSelectedObjects.end(); for (SelectedObjectMap::iterator i = newSelectedObjects.begin(); i != newObjectsEnd; ++i) { RenderSelectionInfo* newInfo = i->second; newInfo->repaint(); delete newInfo; } // Have any of the old blocks changed? SelectedBlockMap::iterator oldBlocksEnd = oldSelectedBlocks.end(); for (SelectedBlockMap::iterator i = oldSelectedBlocks.begin(); i != oldBlocksEnd; ++i) { RenderBlock* block = i->first; RenderBlockSelectionInfo* newInfo = newSelectedBlocks.get(block); RenderBlockSelectionInfo* oldInfo = i->second; if (!newInfo || oldInfo->rects() != newInfo->rects() || oldInfo->state() != newInfo->state()) { if (blockRepaintMode == RepaintNewXOROld) oldInfo->repaint(); if (newInfo) { newInfo->repaint(); newSelectedBlocks.remove(block); delete newInfo; } } delete oldInfo; } // Any new blocks that remain were not found in the old blocks dict, and so they need to be updated. SelectedBlockMap::iterator newBlocksEnd = newSelectedBlocks.end(); for (SelectedBlockMap::iterator i = newSelectedBlocks.begin(); i != newBlocksEnd; ++i) { RenderBlockSelectionInfo* newInfo = i->second; newInfo->repaint(); delete newInfo; } m_frameView->endDeferredRepaints(); }
LocationPath::~LocationPath() { deleteAllValues(m_steps); }
MediaQuery::~MediaQuery() { deleteAllValues(*m_expressions); delete m_expressions; }
RenderSVGResourceClipper::~RenderSVGResourceClipper() { deleteAllValues(m_clipper); m_clipper.clear(); }