mozilla-skia-overflow.patch
branchfirefox48
changeset 929 9fc2ebe6d7f1
equal deleted inserted replaced
928:4663386a04de 929:9fc2ebe6d7f1
       
     1 # HG changeset patch
       
     2 # User Lee Salzman <lsalzman@mozilla.com>
       
     3 # Date 1474489725 14400
       
     4 #      Wed Sep 21 16:28:45 2016 -0400
       
     5 # Node ID 38a427a913b57080374b9966466b8f436ec39eb8
       
     6 # Parent  4dfd3f00543d1d7adc3f0f852e6f32fbca6f3420
       
     7 fix invalid Sk4f store to SkColor in SkPixmap::erase
       
     8 
       
     9 MozReview-Commit-ID: 840x1nXgYns
       
    10 
       
    11 diff --git a/gfx/skia/skia/src/core/SkPixmap.cpp b/gfx/skia/skia/src/core/SkPixmap.cpp
       
    12 --- a/gfx/skia/skia/src/core/SkPixmap.cpp
       
    13 +++ b/gfx/skia/skia/src/core/SkPixmap.cpp
       
    14 @@ -221,17 +221,17 @@ bool SkPixmap::erase(const SkColor4f& or
       
    15          pm = *this;
       
    16      }
       
    17  
       
    18      const SkColor4f color = origColor.pin();
       
    19  
       
    20      if (kRGBA_F16_SkColorType != pm.colorType()) {
       
    21          Sk4f c4 = Sk4f::Load(color.vec());
       
    22          SkColor c;
       
    23 -        (c4 * Sk4f(255) + Sk4f(0.5f)).store(&c);
       
    24 +        SkNx_cast<uint8_t>(c4 * Sk4f(255) + Sk4f(0.5f)).store(&c);
       
    25          return pm.erase(c);
       
    26      }
       
    27  
       
    28      const uint64_t half4 = color.premul().toF16();
       
    29      for (int y = 0; y < pm.height(); ++y) {
       
    30          sk_memset64(pm.writable_addr64(0, y), half4, pm.width());
       
    31      }
       
    32      return true;