OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 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 "Fuzz.h" | 7 #include "Fuzz.h" |
8 #include "Sk1DPathEffect.h" | 8 #include "Sk1DPathEffect.h" |
9 #include "Sk2DPathEffect.h" | 9 #include "Sk2DPathEffect.h" |
10 #include "SkAlphaThresholdFilter.h" | 10 #include "SkAlphaThresholdFilter.h" |
(...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
727 break; | 727 break; |
728 } | 728 } |
729 default: | 729 default: |
730 break; | 730 break; |
731 } | 731 } |
732 return (filter || canBeNull) ? filter : make_image_filter(canBeNull); | 732 return (filter || canBeNull) ? filter : make_image_filter(canBeNull); |
733 } | 733 } |
734 | 734 |
735 static SkImageFilter* make_serialized_image_filter() { | 735 static SkImageFilter* make_serialized_image_filter() { |
736 sk_sp<SkImageFilter> filter(make_image_filter(false)); | 736 sk_sp<SkImageFilter> filter(make_image_filter(false)); |
737 SkAutoTUnref<SkData> data(SkValidatingSerializeFlattenable(filter.get())); | 737 sk_sp<SkData> data(SkValidatingSerializeFlattenable(filter.get())); |
738 const unsigned char* ptr = static_cast<const unsigned char*>(data->data()); | 738 const unsigned char* ptr = static_cast<const unsigned char*>(data->data()); |
739 size_t len = data->size(); | 739 size_t len = data->size(); |
740 #ifdef SK_ADD_RANDOM_BIT_FLIPS | 740 #ifdef SK_ADD_RANDOM_BIT_FLIPS |
741 unsigned char* p = const_cast<unsigned char*>(ptr); | 741 unsigned char* p = const_cast<unsigned char*>(ptr); |
742 for (size_t i = 0; i < len; ++i, ++p) { | 742 for (size_t i = 0; i < len; ++i, ++p) { |
743 if (R(250) == 1) { // 0.4% of the time, flip a bit or byte | 743 if (R(250) == 1) { // 0.4% of the time, flip a bit or byte |
744 if (R(10) == 1) { // Then 10% of the time, change a whole byte | 744 if (R(10) == 1) { // Then 10% of the time, change a whole byte |
745 switch(R(3)) { | 745 switch(R(3)) { |
746 case 0: | 746 case 0: |
747 *p ^= 0xFF; // Flip entire byte | 747 *p ^= 0xFF; // Flip entire byte |
(...skipping 27 matching lines...) Expand all Loading... |
775 DEF_FUZZ(SerializedImageFilter, f) { | 775 DEF_FUZZ(SerializedImageFilter, f) { |
776 fuzz = f; | 776 fuzz = f; |
777 SkImageFilter* filter = make_serialized_image_filter(); | 777 SkImageFilter* filter = make_serialized_image_filter(); |
778 | 778 |
779 SkPaint paint; | 779 SkPaint paint; |
780 SkSafeUnref(paint.setImageFilter(filter)); | 780 SkSafeUnref(paint.setImageFilter(filter)); |
781 SkBitmap bitmap; | 781 SkBitmap bitmap; |
782 SkCanvas canvas(bitmap); | 782 SkCanvas canvas(bitmap); |
783 drawClippedBitmap(&canvas, 0, 0, paint); | 783 drawClippedBitmap(&canvas, 0, 0, paint); |
784 } | 784 } |
OLD | NEW |