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

Side by Side Diff: include/private/SkTDArray.h

Issue 2289783002: dedup images/blobs/pictures by ID in old serialization format (Closed)
Patch Set: Created 4 years, 3 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
« no previous file with comments | « no previous file | src/core/SkPictureRecord.cpp » ('j') | src/core/SkPictureRecord.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkTDArray_DEFINED 10 #ifndef SkTDArray_DEFINED
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
210 210
211 void removeShuffle(int index) { 211 void removeShuffle(int index) {
212 SkASSERT(index < fCount); 212 SkASSERT(index < fCount);
213 int newCount = fCount - 1; 213 int newCount = fCount - 1;
214 fCount = newCount; 214 fCount = newCount;
215 if (index != newCount) { 215 if (index != newCount) {
216 memcpy(fArray + index, fArray + newCount, sizeof(T)); 216 memcpy(fArray + index, fArray + newCount, sizeof(T));
217 } 217 }
218 } 218 }
219 219
220 template <typename S> int select(S&& selector) const {
herb_g 2016/08/29 14:39:50 Select in many other languages usually returns ALL
221 const T* iter = fArray;
222 const T* stop = fArray + fCount;
223
224 for (; iter < stop; iter++) {
225 if (selector(*iter)) {
226 return SkToInt(iter - fArray);
227 }
228 }
229 return -1;
herb_g 2016/08/29 14:39:50 I agree with Mike. I think that count is a better
230 }
231
220 int find(const T& elem) const { 232 int find(const T& elem) const {
221 const T* iter = fArray; 233 const T* iter = fArray;
222 const T* stop = fArray + fCount; 234 const T* stop = fArray + fCount;
223 235
224 for (; iter < stop; iter++) { 236 for (; iter < stop; iter++) {
225 if (*iter == elem) { 237 if (*iter == elem) {
226 return SkToInt(iter - fArray); 238 return SkToInt(iter - fArray);
227 } 239 }
228 } 240 }
229 return -1; 241 return -1;
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 */ 372 */
361 void resizeStorageToAtLeast(int count) { 373 void resizeStorageToAtLeast(int count) {
362 SkASSERT(count > fReserve); 374 SkASSERT(count > fReserve);
363 fReserve = count + 4; 375 fReserve = count + 4;
364 fReserve += fReserve / 4; 376 fReserve += fReserve / 4;
365 fArray = (T*)sk_realloc_throw(fArray, fReserve * sizeof(T)); 377 fArray = (T*)sk_realloc_throw(fArray, fReserve * sizeof(T));
366 } 378 }
367 }; 379 };
368 380
369 #endif 381 #endif
OLDNEW
« no previous file with comments | « no previous file | src/core/SkPictureRecord.cpp » ('j') | src/core/SkPictureRecord.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698