예제 #1
0
void RenderCounter::rendererRemovedFromTree(RenderObject* removedRenderer)
{
    RenderObject* currentRenderer = removedRenderer->lastLeafChild();
    if (!currentRenderer)
        currentRenderer = removedRenderer;
    while (true) {
        destroyCounterNodes(currentRenderer);
        if (currentRenderer == removedRenderer)
            break;
        currentRenderer = currentRenderer->previousInPreOrder();
    }
}
예제 #2
0
void RenderCounter::rendererRemovedFromTree(RenderObject& renderer)
{
    if (!renderer.view().hasRenderCounters())
        return;
    RenderObject* currentRenderer = renderer.lastLeafChild();
    if (!currentRenderer)
        currentRenderer = &renderer;
    while (true) {
        destroyCounterNodes(currentRenderer);
        if (currentRenderer == &renderer)
            break;
        currentRenderer = currentRenderer->previousInPreOrder();
    }
}
void LayoutCounter::layoutObjectSubtreeWillBeDetached(LayoutObject* layoutObject)
{
    ASSERT(layoutObject->view());
    if (!layoutObject->view()->hasLayoutCounters())
        return;
    LayoutObject* currentLayoutObject = layoutObject->lastLeafChild();
    if (!currentLayoutObject)
        currentLayoutObject = layoutObject;
    while (true) {
        destroyCounterNodes(*currentLayoutObject);
        if (currentLayoutObject == layoutObject)
            break;
        currentLayoutObject = currentLayoutObject->previousInPreOrder();
    }
}