Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1189)

Side by Side Diff: Source/core/rendering/RenderLayerCompositor.cpp

Issue 139313008: Fix crash due to missing null check in squashing code (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after
1128 layer->setGroupedMapping(0); 1128 layer->setGroupedMapping(0);
1129 layer->setShouldInvalidateNextBacking(true); 1129 layer->setShouldInvalidateNextBacking(true);
1130 } 1130 }
1131 } 1131 }
1132 } 1132 }
1133 1133
1134 // At this point, the layer's compositingState() is correct and indicates wh ere this layer would paint into. Issue 1134 // At this point, the layer's compositingState() is correct and indicates wh ere this layer would paint into. Issue
1135 // an invalidation if we needed to. 1135 // an invalidation if we needed to.
1136 if (layer->shouldInvalidateNextBacking()) { 1136 if (layer->shouldInvalidateNextBacking()) {
1137 // FIXME: these should invalidate only the rect that needs to be invalid ated, i.e. the layer's rect in the squashingLayer's space. 1137 // FIXME: these should invalidate only the rect that needs to be invalid ated, i.e. the layer's rect in the squashingLayer's space.
1138 if (layer->compositingState() == PaintsIntoGroupedBacking && squashingSt ate.mostRecentMapping->squashingLayer()) 1138 if (layer->compositingState() == PaintsIntoGroupedBacking && squashingSt ate.mostRecentMapping->squashingLayer()) {
1139 squashingState.mostRecentMapping->squashingLayer()->setNeedsDisplay( ); 1139 squashingState.mostRecentMapping->squashingLayer()->setNeedsDisplay( );
1140 else 1140 } else {
1141 layer->enclosingCompositingLayerForRepaint(ExcludeSelf)->compositedL ayerMapping()->setContentsNeedDisplay(); 1141 RenderLayer* enclosingLayer = layer->enclosingCompositingLayerForRep aint(ExcludeSelf);
1142 if (enclosingLayer->hasCompositedLayerMapping())
1143 enclosingLayer->compositedLayerMapping()->setContentsNeedDisplay ();
1144 }
1142 1145
1143 layer->setShouldInvalidateNextBacking(false); 1146 layer->setShouldInvalidateNextBacking(false);
1144 } 1147 }
1145 1148
1146 if (layer->stackingNode()->isStackingContainer()) { 1149 if (layer->stackingNode()->isStackingContainer()) {
1147 RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), Negativ eZOrderChildren); 1150 RenderLayerStackingNodeIterator iterator(*layer->stackingNode(), Negativ eZOrderChildren);
1148 while (RenderLayerStackingNode* curNode = iterator.next()) 1151 while (RenderLayerStackingNode* curNode = iterator.next())
1149 assignLayersToBackingsInternal(curNode->layer(), squashingState, lay ersChanged); 1152 assignLayersToBackingsInternal(curNode->layer(), squashingState, lay ersChanged);
1150 } 1153 }
1151 1154
(...skipping 1501 matching lines...) Expand 10 before | Expand all | Expand 10 after
2653 } else if (graphicsLayer == m_scrollLayer.get()) { 2656 } else if (graphicsLayer == m_scrollLayer.get()) {
2654 name = "Frame Scrolling Layer"; 2657 name = "Frame Scrolling Layer";
2655 } else { 2658 } else {
2656 ASSERT_NOT_REACHED(); 2659 ASSERT_NOT_REACHED();
2657 } 2660 }
2658 2661
2659 return name; 2662 return name;
2660 } 2663 }
2661 2664
2662 } // namespace WebCore 2665 } // namespace WebCore
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698