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

Side by Side Diff: src/core/SkPictureData.cpp

Issue 1316123003: Style Change: SkNEW->new; SkDELETE->delete (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2015-08-26 (Wednesday) 15:59:00 EDT Created 5 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 | « src/core/SkPicture.cpp ('k') | src/core/SkPictureFlat.h » ('j') | 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 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 #include <new> 7 #include <new>
8 #include "SkPictureData.h" 8 #include "SkPictureData.h"
9 #include "SkPictureRecord.h" 9 #include "SkPictureRecord.h"
10 #include "SkReadBuffer.h" 10 #include "SkReadBuffer.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 fBitmaps = record.fBitmaps; 46 fBitmaps = record.fBitmaps;
47 fPaints = record.fPaints; 47 fPaints = record.fPaints;
48 fPaths = record.fPaths; 48 fPaths = record.fPaths;
49 49
50 this->initForPlayback(); 50 this->initForPlayback();
51 51
52 const SkTDArray<const SkPicture* >& pictures = record.getPictureRefs(); 52 const SkTDArray<const SkPicture* >& pictures = record.getPictureRefs();
53 fPictureCount = pictures.count(); 53 fPictureCount = pictures.count();
54 if (fPictureCount > 0) { 54 if (fPictureCount > 0) {
55 fPictureRefs = SkNEW_ARRAY(const SkPicture*, fPictureCount); 55 fPictureRefs = new const SkPicture* [fPictureCount];
56 for (int i = 0; i < fPictureCount; i++) { 56 for (int i = 0; i < fPictureCount; i++) {
57 fPictureRefs[i] = pictures[i]; 57 fPictureRefs[i] = pictures[i];
58 fPictureRefs[i]->ref(); 58 fPictureRefs[i]->ref();
59 } 59 }
60 } 60 }
61 61
62 // templatize to consolidate with similar picture logic? 62 // templatize to consolidate with similar picture logic?
63 const SkTDArray<const SkTextBlob*>& blobs = record.getTextBlobRefs(); 63 const SkTDArray<const SkTextBlob*>& blobs = record.getTextBlobRefs();
64 fTextBlobCount = blobs.count(); 64 fTextBlobCount = blobs.count();
65 if (fTextBlobCount > 0) { 65 if (fTextBlobCount > 0) {
66 fTextBlobRefs = SkNEW_ARRAY(const SkTextBlob*, fTextBlobCount); 66 fTextBlobRefs = new const SkTextBlob* [fTextBlobCount];
67 for (int i = 0; i < fTextBlobCount; ++i) { 67 for (int i = 0; i < fTextBlobCount; ++i) {
68 fTextBlobRefs[i] = SkRef(blobs[i]); 68 fTextBlobRefs[i] = SkRef(blobs[i]);
69 } 69 }
70 } 70 }
71 71
72 const SkTDArray<const SkImage*>& imgs = record.getImageRefs(); 72 const SkTDArray<const SkImage*>& imgs = record.getImageRefs();
73 fImageCount = imgs.count(); 73 fImageCount = imgs.count();
74 if (fImageCount > 0) { 74 if (fImageCount > 0) {
75 fImageRefs = SkNEW_ARRAY(const SkImage*, fImageCount); 75 fImageRefs = new const SkImage* [fImageCount];
76 for (int i = 0; i < fImageCount; ++i) { 76 for (int i = 0; i < fImageCount; ++i) {
77 fImageRefs[i] = SkRef(imgs[i]); 77 fImageRefs[i] = SkRef(imgs[i]);
78 } 78 }
79 } 79 }
80 } 80 }
81 81
82 void SkPictureData::init() { 82 void SkPictureData::init() {
83 fPictureRefs = NULL; 83 fPictureRefs = NULL;
84 fPictureCount = 0; 84 fPictureCount = 0;
85 fTextBlobRefs = NULL; 85 fTextBlobRefs = NULL;
86 fTextBlobCount = 0; 86 fTextBlobCount = 0;
87 fImageRefs = NULL; 87 fImageRefs = NULL;
88 fImageCount = 0; 88 fImageCount = 0;
89 fOpData = NULL; 89 fOpData = NULL;
90 fFactoryPlayback = NULL; 90 fFactoryPlayback = NULL;
91 } 91 }
92 92
93 SkPictureData::~SkPictureData() { 93 SkPictureData::~SkPictureData() {
94 SkSafeUnref(fOpData); 94 SkSafeUnref(fOpData);
95 95
96 for (int i = 0; i < fPictureCount; i++) { 96 for (int i = 0; i < fPictureCount; i++) {
97 fPictureRefs[i]->unref(); 97 fPictureRefs[i]->unref();
98 } 98 }
99 SkDELETE_ARRAY(fPictureRefs); 99 delete[] fPictureRefs;
100 100
101 for (int i = 0; i < fTextBlobCount; i++) { 101 for (int i = 0; i < fTextBlobCount; i++) {
102 fTextBlobRefs[i]->unref(); 102 fTextBlobRefs[i]->unref();
103 } 103 }
104 SkDELETE_ARRAY(fTextBlobRefs); 104 delete[] fTextBlobRefs;
105 105
106 for (int i = 0; i < fImageCount; i++) { 106 for (int i = 0; i < fImageCount; i++) {
107 fImageRefs[i]->unref(); 107 fImageRefs[i]->unref();
108 } 108 }
109 SkDELETE_ARRAY(fImageRefs); 109 delete[] fImageRefs;
110 110
111 SkDELETE(fFactoryPlayback); 111 delete fFactoryPlayback;
112 } 112 }
113 113
114 bool SkPictureData::containsBitmaps() const { 114 bool SkPictureData::containsBitmaps() const {
115 if (fBitmaps.count() > 0 || fImageCount > 0) { 115 if (fBitmaps.count() > 0 || fImageCount > 0) {
116 return true; 116 return true;
117 } 117 }
118 for (int i = 0; i < fPictureCount; ++i) { 118 for (int i = 0; i < fPictureCount; ++i) {
119 if (fPictureRefs[i]->willPlayBackBitmaps()) { 119 if (fPictureRefs[i]->willPlayBackBitmaps()) {
120 return true; 120 return true;
121 } 121 }
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 case SK_PICT_READER_TAG: 357 case SK_PICT_READER_TAG:
358 SkASSERT(NULL == fOpData); 358 SkASSERT(NULL == fOpData);
359 fOpData = SkData::NewFromStream(stream, size); 359 fOpData = SkData::NewFromStream(stream, size);
360 if (!fOpData) { 360 if (!fOpData) {
361 return false; 361 return false;
362 } 362 }
363 break; 363 break;
364 case SK_PICT_FACTORY_TAG: { 364 case SK_PICT_FACTORY_TAG: {
365 SkASSERT(!haveBuffer); 365 SkASSERT(!haveBuffer);
366 size = stream->readU32(); 366 size = stream->readU32();
367 fFactoryPlayback = SkNEW_ARGS(SkFactoryPlayback, (size)); 367 fFactoryPlayback = new SkFactoryPlayback(size);
368 for (size_t i = 0; i < size; i++) { 368 for (size_t i = 0; i < size; i++) {
369 SkString str; 369 SkString str;
370 const size_t len = stream->readPackedUInt(); 370 const size_t len = stream->readPackedUInt();
371 str.resize(len); 371 str.resize(len);
372 if (stream->read(str.writable_str(), len) != len) { 372 if (stream->read(str.writable_str(), len) != len) {
373 return false; 373 return false;
374 } 374 }
375 fFactoryPlayback->base()[i] = SkFlattenable::NameToFactory(str.c _str()); 375 fFactoryPlayback->base()[i] = SkFlattenable::NameToFactory(str.c _str());
376 } 376 }
377 } break; 377 } break;
378 case SK_PICT_TYPEFACE_TAG: { 378 case SK_PICT_TYPEFACE_TAG: {
379 SkASSERT(!haveBuffer); 379 SkASSERT(!haveBuffer);
380 const int count = SkToInt(size); 380 const int count = SkToInt(size);
381 fTFPlayback.setCount(count); 381 fTFPlayback.setCount(count);
382 for (int i = 0; i < count; i++) { 382 for (int i = 0; i < count; i++) {
383 SkAutoTUnref<SkTypeface> tf(SkTypeface::Deserialize(stream)); 383 SkAutoTUnref<SkTypeface> tf(SkTypeface::Deserialize(stream));
384 if (!tf.get()) { // failed to deserialize 384 if (!tf.get()) { // failed to deserialize
385 // fTFPlayback asserts it never has a null, so we plop in 385 // fTFPlayback asserts it never has a null, so we plop in
386 // the default here. 386 // the default here.
387 tf.reset(SkTypeface::RefDefault()); 387 tf.reset(SkTypeface::RefDefault());
388 } 388 }
389 fTFPlayback.set(i, tf); 389 fTFPlayback.set(i, tf);
390 } 390 }
391 } break; 391 } break;
392 case SK_PICT_PICTURE_TAG: { 392 case SK_PICT_PICTURE_TAG: {
393 fPictureCount = 0; 393 fPictureCount = 0;
394 fPictureRefs = SkNEW_ARRAY(const SkPicture*, size); 394 fPictureRefs = new const SkPicture* [size];
395 for (uint32_t i = 0; i < size; i++) { 395 for (uint32_t i = 0; i < size; i++) {
396 fPictureRefs[i] = SkPicture::CreateFromStream(stream, proc, topL evelTFPlayback); 396 fPictureRefs[i] = SkPicture::CreateFromStream(stream, proc, topL evelTFPlayback);
397 if (!fPictureRefs[i]) { 397 if (!fPictureRefs[i]) {
398 return false; 398 return false;
399 } 399 }
400 fPictureCount++; 400 fPictureCount++;
401 } 401 }
402 } break; 402 } break;
403 case SK_PICT_BUFFER_SIZE_TAG: { 403 case SK_PICT_BUFFER_SIZE_TAG: {
404 SkAutoMalloc storage(size); 404 SkAutoMalloc storage(size);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
467 template <typename T> 467 template <typename T>
468 bool new_array_from_buffer(SkReadBuffer& buffer, uint32_t inCount, 468 bool new_array_from_buffer(SkReadBuffer& buffer, uint32_t inCount,
469 const T*** array, int* outCount, const T* (*factory)( SkReadBuffer&)) { 469 const T*** array, int* outCount, const T* (*factory)( SkReadBuffer&)) {
470 if (!buffer.validate((0 == *outCount) && (NULL == *array))) { 470 if (!buffer.validate((0 == *outCount) && (NULL == *array))) {
471 return false; 471 return false;
472 } 472 }
473 if (0 == inCount) { 473 if (0 == inCount) {
474 return true; 474 return true;
475 } 475 }
476 *outCount = inCount; 476 *outCount = inCount;
477 *array = SkNEW_ARRAY(const T*, *outCount); 477 *array = new const T* [*outCount];
478 bool success = true; 478 bool success = true;
479 int i = 0; 479 int i = 0;
480 for (; i < *outCount; i++) { 480 for (; i < *outCount; i++) {
481 (*array)[i] = factory(buffer); 481 (*array)[i] = factory(buffer);
482 if (NULL == (*array)[i]) { 482 if (NULL == (*array)[i]) {
483 success = false; 483 success = false;
484 break; 484 break;
485 } 485 }
486 } 486 }
487 if (!success) { 487 if (!success) {
488 // Delete all of the blobs that were already created (up to but excludin g i): 488 // Delete all of the blobs that were already created (up to but excludin g i):
489 for (int j = 0; j < i; j++) { 489 for (int j = 0; j < i; j++) {
490 (*array)[j]->unref(); 490 (*array)[j]->unref();
491 } 491 }
492 // Delete the array 492 // Delete the array
493 SkDELETE_ARRAY(*array); 493 delete[] * array;
494 *array = NULL; 494 *array = NULL;
495 *outCount = 0; 495 *outCount = 0;
496 return false; 496 return false;
497 } 497 }
498 return true; 498 return true;
499 } 499 }
500 500
501 bool SkPictureData::parseBufferTag(SkReadBuffer& buffer, uint32_t tag, uint32_t size) { 501 bool SkPictureData::parseBufferTag(SkReadBuffer& buffer, uint32_t tag, uint32_t size) {
502 switch (tag) { 502 switch (tag) {
503 case SK_PICT_BITMAP_BUFFER_TAG: { 503 case SK_PICT_BITMAP_BUFFER_TAG: {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 // The tag was invalid. 558 // The tag was invalid.
559 return false; 559 return false;
560 } 560 }
561 return true; // success 561 return true; // success
562 } 562 }
563 563
564 SkPictureData* SkPictureData::CreateFromStream(SkStream* stream, 564 SkPictureData* SkPictureData::CreateFromStream(SkStream* stream,
565 const SkPictInfo& info, 565 const SkPictInfo& info,
566 SkPicture::InstallPixelRefProc pr oc, 566 SkPicture::InstallPixelRefProc pr oc,
567 SkTypefacePlayback* topLevelTFPla yback) { 567 SkTypefacePlayback* topLevelTFPla yback) {
568 SkAutoTDelete<SkPictureData> data(SkNEW_ARGS(SkPictureData, (info))); 568 SkAutoTDelete<SkPictureData> data(new SkPictureData(info));
569 if (!topLevelTFPlayback) { 569 if (!topLevelTFPlayback) {
570 topLevelTFPlayback = &data->fTFPlayback; 570 topLevelTFPlayback = &data->fTFPlayback;
571 } 571 }
572 572
573 if (!data->parseStream(stream, proc, topLevelTFPlayback)) { 573 if (!data->parseStream(stream, proc, topLevelTFPlayback)) {
574 return NULL; 574 return NULL;
575 } 575 }
576 return data.detach(); 576 return data.detach();
577 } 577 }
578 578
579 SkPictureData* SkPictureData::CreateFromBuffer(SkReadBuffer& buffer, 579 SkPictureData* SkPictureData::CreateFromBuffer(SkReadBuffer& buffer,
580 const SkPictInfo& info) { 580 const SkPictInfo& info) {
581 SkAutoTDelete<SkPictureData> data(SkNEW_ARGS(SkPictureData, (info))); 581 SkAutoTDelete<SkPictureData> data(new SkPictureData(info));
582 buffer.setVersion(info.fVersion); 582 buffer.setVersion(info.fVersion);
583 583
584 if (!data->parseBuffer(buffer)) { 584 if (!data->parseBuffer(buffer)) {
585 return NULL; 585 return NULL;
586 } 586 }
587 return data.detach(); 587 return data.detach();
588 } 588 }
589 589
590 bool SkPictureData::parseStream(SkStream* stream, 590 bool SkPictureData::parseStream(SkStream* stream,
591 SkPicture::InstallPixelRefProc proc, 591 SkPicture::InstallPixelRefProc proc,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 } 639 }
640 } 640 }
641 641
642 bool SkPictureData::suitableForLayerOptimization() const { 642 bool SkPictureData::suitableForLayerOptimization() const {
643 return fContentInfo.numLayers() > 0; 643 return fContentInfo.numLayers() > 0;
644 } 644 }
645 #endif 645 #endif
646 /////////////////////////////////////////////////////////////////////////////// 646 ///////////////////////////////////////////////////////////////////////////////
647 647
648 648
OLDNEW
« no previous file with comments | « src/core/SkPicture.cpp ('k') | src/core/SkPictureFlat.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698