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

Side by Side Diff: tools/skimage_main.cpp

Issue 646213002: Eliminate one copy of replace_char() function. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 2 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
« tools/picture_utils.h ('K') | « tools/picture_utils.h ('k') | 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 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 7
8 #include "gm_expectations.h" 8 #include "gm_expectations.h"
9 #include "picture_utils.h"
9 #include "SkBitmap.h" 10 #include "SkBitmap.h"
10 #include "SkColorPriv.h" 11 #include "SkColorPriv.h"
11 #include "SkCommandLineFlags.h" 12 #include "SkCommandLineFlags.h"
12 #include "SkData.h" 13 #include "SkData.h"
13 #include "SkForceLinking.h" 14 #include "SkForceLinking.h"
14 #include "SkGraphics.h" 15 #include "SkGraphics.h"
15 #include "SkImageDecoder.h" 16 #include "SkImageDecoder.h"
16 #include "SkImageEncoder.h" 17 #include "SkImageEncoder.h"
17 #include "SkOSFile.h" 18 #include "SkOSFile.h"
18 #include "SkRandom.h" 19 #include "SkRandom.h"
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 "a digest\n", srcPath); 457 "a digest\n", srcPath);
457 return; 458 return;
458 } 459 }
459 if (!lengthLessDigest.equals(digest)) { 460 if (!lengthLessDigest.equals(digest)) {
460 gDecodeFailures.push_back().appendf("Without using getLength, %s did not match digest " 461 gDecodeFailures.push_back().appendf("Without using getLength, %s did not match digest "
461 "that uses getLength\n", srcPath); 462 "that uses getLength\n", srcPath);
462 } 463 }
463 } 464 }
464 #endif // defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX) 465 #endif // defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_UNIX)
465 466
466 /**
467 * Replaces all instances of oldChar with newChar in str.
468 *
469 * TODO: This function appears here and in picture_utils.[cpp|h] ;
470 * we should add the implementation to src/core/SkString.cpp, write tests for it ,
471 * and remove it from elsewhere.
472 */
473 static void replace_char(SkString* str, const char oldChar, const char newChar) {
474 if (NULL == str) {
475 return;
476 }
477 for (size_t i = 0; i < str->size(); ++i) {
478 if (oldChar == str->operator[](i)) {
479 str->operator[](i) = newChar;
480 }
481 }
482 }
483
484 static void decodeFileAndWrite(const char srcPath[], const SkString* writePath) { 467 static void decodeFileAndWrite(const char srcPath[], const SkString* writePath) {
485 SkBitmap bitmap; 468 SkBitmap bitmap;
486 SkFILEStream stream(srcPath); 469 SkFILEStream stream(srcPath);
487 if (!stream.isValid()) { 470 if (!stream.isValid()) {
488 gInvalidStreams.push_back().set(srcPath); 471 gInvalidStreams.push_back().set(srcPath);
489 return; 472 return;
490 } 473 }
491 474
492 SkImageDecoder* codec = SkImageDecoder::Factory(&stream); 475 SkImageDecoder* codec = SkImageDecoder::Factory(&stream);
493 if (NULL == codec) { 476 if (NULL == codec) {
494 gMissingCodecs.push_back().set(srcPath); 477 gMissingCodecs.push_back().set(srcPath);
495 return; 478 return;
496 } 479 }
497 480
498 SkAutoTDelete<SkImageDecoder> ad(codec); 481 SkAutoTDelete<SkImageDecoder> ad(codec);
499 482
500 codec->setSkipWritingZeroes(FLAGS_skip); 483 codec->setSkipWritingZeroes(FLAGS_skip);
501 codec->setSampleSize(FLAGS_sampleSize); 484 codec->setSampleSize(FLAGS_sampleSize);
502 stream.rewind(); 485 stream.rewind();
503 486
504 // Create a string representing just the filename itself, for use in json ex pectations. 487 // Create a string representing just the filename itself, for use in json ex pectations.
505 SkString basename = SkOSPath::Basename(srcPath); 488 SkString basename = SkOSPath::Basename(srcPath);
506 // Replace '_' with '-', so that the names can fit gm_json.py's IMAGE_FILENA ME_PATTERN 489 // Replace '_' with '-', so that the names can fit gm_json.py's IMAGE_FILENA ME_PATTERN
507 replace_char(&basename, '_', '-'); 490 sk_tools::replace_char(&basename, '_', '-');
508 // Replace '.' with '-', so the output filename can still retain the origina l file extension, 491 // Replace '.' with '-', so the output filename can still retain the origina l file extension,
509 // but still end up with only one '.', which denotes the actual extension of the final file. 492 // but still end up with only one '.', which denotes the actual extension of the final file.
510 replace_char(&basename, '.', '-'); 493 sk_tools::replace_char(&basename, '.', '-');
511 const char* filename = basename.c_str(); 494 const char* filename = basename.c_str();
512 495
513 if (!codec->decode(&stream, &bitmap, gPrefColorType, SkImageDecoder::kDecode Pixels_Mode)) { 496 if (!codec->decode(&stream, &bitmap, gPrefColorType, SkImageDecoder::kDecode Pixels_Mode)) {
514 if (gJsonExpectations.get()) { 497 if (gJsonExpectations.get()) {
515 const SkString name_config = create_json_key(filename); 498 const SkString name_config = create_json_key(filename);
516 skiagm::Expectations jsExpectations = gJsonExpectations->get(name_co nfig.c_str()); 499 skiagm::Expectations jsExpectations = gJsonExpectations->get(name_co nfig.c_str());
517 if (jsExpectations.ignoreFailure()) { 500 if (jsExpectations.ignoreFailure()) {
518 // This is a known failure. 501 // This is a known failure.
519 gKnownFailures.push_back().appendf( 502 gKnownFailures.push_back().appendf(
520 "failed to decode %s, which is a known failure.", srcPath); 503 "failed to decode %s, which is a known failure.", srcPath);
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 print_strings("Known failures", gKnownFailures); 817 print_strings("Known failures", gKnownFailures);
835 818
836 return failed ? -1 : 0; 819 return failed ? -1 : 0;
837 } 820 }
838 821
839 #if !defined SK_BUILD_FOR_IOS 822 #if !defined SK_BUILD_FOR_IOS
840 int main(int argc, char * const argv[]) { 823 int main(int argc, char * const argv[]) {
841 return tool_main(argc, (char**) argv); 824 return tool_main(argc, (char**) argv);
842 } 825 }
843 #endif 826 #endif
OLDNEW
« tools/picture_utils.h ('K') | « tools/picture_utils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698