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

Side by Side Diff: third_party/WebKit/Source/core/layout/shapes/RasterShape.cpp

Issue 2748103015: Replace ASSERT with DCHECK in core/layout/<sub dirs> (Closed)
Patch Set: Rebase with latest Created 3 years, 8 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Adobe Systems Incorporated. All rights reserved. 2 * Copyright (C) 2013 Adobe Systems Incorporated. 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 * 7 *
8 * 1. Redistributions of source code must retain the above 8 * 1. Redistributions of source code must retain the above
9 * copyright notice, this list of conditions and the following 9 * copyright notice, this list of conditions and the following
10 * disclaimer. 10 * disclaimer.
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 50
51 MarginIntervalGenerator::MarginIntervalGenerator(unsigned radius) 51 MarginIntervalGenerator::MarginIntervalGenerator(unsigned radius)
52 : m_y(0), m_x1(0), m_x2(0) { 52 : m_y(0), m_x1(0), m_x2(0) {
53 m_xIntercepts.resize(radius + 1); 53 m_xIntercepts.resize(radius + 1);
54 unsigned radiusSquared = radius * radius; 54 unsigned radiusSquared = radius * radius;
55 for (unsigned y = 0; y <= radius; y++) 55 for (unsigned y = 0; y <= radius; y++)
56 m_xIntercepts[y] = sqrt(static_cast<double>(radiusSquared - y * y)); 56 m_xIntercepts[y] = sqrt(static_cast<double>(radiusSquared - y * y));
57 } 57 }
58 58
59 void MarginIntervalGenerator::set(int y, const IntShapeInterval& interval) { 59 void MarginIntervalGenerator::set(int y, const IntShapeInterval& interval) {
60 ASSERT(y >= 0 && interval.x1() >= 0); 60 DCHECK_GE(y, 0);
61 DCHECK_GE(interval.x1(), 0);
61 m_y = y; 62 m_y = y;
62 m_x1 = interval.x1(); 63 m_x1 = interval.x1();
63 m_x2 = interval.x2(); 64 m_x2 = interval.x2();
64 } 65 }
65 66
66 IntShapeInterval MarginIntervalGenerator::intervalAt(int y) const { 67 IntShapeInterval MarginIntervalGenerator::intervalAt(int y) const {
67 unsigned xInterceptsIndex = abs(y - m_y); 68 unsigned xInterceptsIndex = abs(y - m_y);
68 int dx = (xInterceptsIndex >= m_xIntercepts.size()) 69 int dx = (xInterceptsIndex >= m_xIntercepts.size())
69 ? 0 70 ? 0
70 : m_xIntercepts[xInterceptsIndex]; 71 : m_xIntercepts[xInterceptsIndex];
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 for (; endY < maxY; endY++) { 134 for (; endY < maxY; endY++) {
134 if (intervalAt(endY).isEmpty() || intervalAt(endY) != extent) 135 if (intervalAt(endY).isEmpty() || intervalAt(endY) != extent)
135 break; 136 break;
136 } 137 }
137 path.addRect(FloatRect(extent.x1(), y, extent.width(), endY - y)); 138 path.addRect(FloatRect(extent.x1(), y, extent.width(), endY - y));
138 y = endY - 1; 139 y = endY - 1;
139 } 140 }
140 } 141 }
141 142
142 const RasterShapeIntervals& RasterShape::marginIntervals() const { 143 const RasterShapeIntervals& RasterShape::marginIntervals() const {
143 ASSERT(shapeMargin() >= 0); 144 DCHECK_GE(shapeMargin(), 0);
144 if (!shapeMargin()) 145 if (!shapeMargin())
145 return *m_intervals; 146 return *m_intervals;
146 147
147 int shapeMarginInt = clampTo<int>(ceil(shapeMargin()), 0); 148 int shapeMarginInt = clampTo<int>(ceil(shapeMargin()), 0);
148 int maxShapeMarginInt = 149 int maxShapeMarginInt =
149 std::max(m_marginRectSize.width(), m_marginRectSize.height()) * sqrtf(2); 150 std::max(m_marginRectSize.width(), m_marginRectSize.height()) * sqrtf(2);
150 if (!m_marginIntervals) 151 if (!m_marginIntervals)
151 m_marginIntervals = m_intervals->computeShapeMarginIntervals( 152 m_marginIntervals = m_intervals->computeShapeMarginIntervals(
152 std::min(shapeMarginInt, maxShapeMarginInt)); 153 std::min(shapeMarginInt, maxShapeMarginInt));
153 154
154 return *m_marginIntervals; 155 return *m_marginIntervals;
155 } 156 }
156 157
157 LineSegment RasterShape::getExcludedInterval(LayoutUnit logicalTop, 158 LineSegment RasterShape::getExcludedInterval(LayoutUnit logicalTop,
158 LayoutUnit logicalHeight) const { 159 LayoutUnit logicalHeight) const {
159 const RasterShapeIntervals& intervals = marginIntervals(); 160 const RasterShapeIntervals& intervals = marginIntervals();
160 if (intervals.isEmpty()) 161 if (intervals.isEmpty())
161 return LineSegment(); 162 return LineSegment();
162 163
163 int y1 = logicalTop.toInt(); 164 int y1 = logicalTop.toInt();
164 int y2 = (logicalTop + logicalHeight).toInt(); 165 int y2 = (logicalTop + logicalHeight).toInt();
165 ASSERT(y2 >= y1); 166 DCHECK_GE(y2, y1);
166 if (y2 < intervals.bounds().y() || y1 >= intervals.bounds().maxY()) 167 if (y2 < intervals.bounds().y() || y1 >= intervals.bounds().maxY())
167 return LineSegment(); 168 return LineSegment();
168 169
169 y1 = std::max(y1, intervals.bounds().y()); 170 y1 = std::max(y1, intervals.bounds().y());
170 y2 = std::min(y2, intervals.bounds().maxY()); 171 y2 = std::min(y2, intervals.bounds().maxY());
171 IntShapeInterval excludedInterval; 172 IntShapeInterval excludedInterval;
172 173
173 if (y1 == y2) { 174 if (y1 == y2) {
174 excludedInterval = intervals.intervalAt(y1); 175 excludedInterval = intervals.intervalAt(y1);
175 } else { 176 } else {
176 for (int y = y1; y < y2; y++) 177 for (int y = y1; y < y2; y++)
177 excludedInterval.unite(intervals.intervalAt(y)); 178 excludedInterval.unite(intervals.intervalAt(y));
178 } 179 }
179 180
180 // Note: |marginIntervals()| returns end-point exclusive 181 // Note: |marginIntervals()| returns end-point exclusive
181 // intervals. |excludedInterval.x2()| contains the left-most pixel 182 // intervals. |excludedInterval.x2()| contains the left-most pixel
182 // offset to the right of the calculated union. 183 // offset to the right of the calculated union.
183 return LineSegment(excludedInterval.x1(), excludedInterval.x2()); 184 return LineSegment(excludedInterval.x1(), excludedInterval.x2());
184 } 185 }
185 186
186 } // namespace blink 187 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698