diff options
author | herb <herb@google.com> | 2015-12-18 08:50:08 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-12-18 08:50:08 -0800 |
commit | 1e810b3cc290b5b5d95c7789661271256288977c (patch) | |
tree | 0b8931b4bf33449e5c32006d58cd33b8d3cf034f /src/core/SkBitmapProcState.cpp | |
parent | 31d46df1b0adf230c58b59c918d2d2ba64adf1ad (diff) |
Revert of Fix UB function problems for shaders and mask. (patchset #3 id:40001 of https://codereview.chromium.org/1530743002/ )
Reason for revert:
Breaks man gold tests.
Original issue's description:
> Fix UB function problems for shaders and mask.
>
> BUG=skia:4634
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1530743002
>
> Committed: https://skia.googlesource.com/skia/+/dafd044e4aea529f88d899247678d4549f776388
TBR=mtklein@google.com,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:4634
Review URL: https://codereview.chromium.org/1534243002
Diffstat (limited to 'src/core/SkBitmapProcState.cpp')
-rw-r--r-- | src/core/SkBitmapProcState.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp index 1ec47fb602..6ed83002d9 100644 --- a/src/core/SkBitmapProcState.cpp +++ b/src/core/SkBitmapProcState.cpp @@ -24,14 +24,14 @@ extern const SkBitmapProcState::SampleProc16 gSkBitmapProcStateSample16_neon[]; extern const SkBitmapProcState::SampleProc32 gSkBitmapProcStateSample32_neon[]; extern void S16_D16_filter_DX_neon(const SkBitmapProcState&, const uint32_t*, int, uint16_t*); -extern void Clamp_S16_D16_filter_DX_shaderproc_neon(const void *, int, int, uint16_t*, int); -extern void Repeat_S16_D16_filter_DX_shaderproc_neon(const void *, int, int, uint16_t*, int); +extern void Clamp_S16_D16_filter_DX_shaderproc_neon(const SkBitmapProcState&, int, int, uint16_t*, int); +extern void Repeat_S16_D16_filter_DX_shaderproc_neon(const SkBitmapProcState&, int, int, uint16_t*, int); extern void SI8_opaque_D32_filter_DX_neon(const SkBitmapProcState&, const uint32_t*, int, SkPMColor*); -extern void SI8_opaque_D32_filter_DX_shaderproc_neon(const void *, int, int, uint32_t*, int); -extern void Clamp_SI8_opaque_D32_filter_DX_shaderproc_neon(const void*, int, int, uint32_t*, int); +extern void SI8_opaque_D32_filter_DX_shaderproc_neon(const SkBitmapProcState&, int, int, uint32_t*, int); +extern void Clamp_SI8_opaque_D32_filter_DX_shaderproc_neon(const SkBitmapProcState&, int, int, uint32_t*, int); #endif -extern void Clamp_S32_opaque_D32_nofilter_DX_shaderproc(const void*, int, int, uint32_t*, int); +extern void Clamp_S32_opaque_D32_nofilter_DX_shaderproc(const SkBitmapProcState&, int, int, uint32_t*, int); #define NAME_WRAP(x) x #include "SkBitmapProcState_filter.h" @@ -391,11 +391,10 @@ bool SkBitmapProcState::chooseScanlineProcs(bool trivialMatrix, bool clampClamp, return true; } -static void Clamp_S32_D32_nofilter_trans_shaderproc(const void* sIn, +static void Clamp_S32_D32_nofilter_trans_shaderproc(const SkBitmapProcState& s, int x, int y, SkPMColor* SK_RESTRICT colors, int count) { - const SkBitmapProcState& s = *static_cast<const SkBitmapProcState*>(sIn); SkASSERT(((s.fInvType & ~SkMatrix::kTranslate_Mask)) == 0); SkASSERT(s.fInvKy == 0); SkASSERT(count > 0 && colors != nullptr); @@ -466,11 +465,10 @@ static inline int sk_int_mirror(int x, int n) { return x; } -static void Repeat_S32_D32_nofilter_trans_shaderproc(const void* sIn, +static void Repeat_S32_D32_nofilter_trans_shaderproc(const SkBitmapProcState& s, int x, int y, SkPMColor* SK_RESTRICT colors, int count) { - const SkBitmapProcState& s = *static_cast<const SkBitmapProcState*>(sIn); SkASSERT(((s.fInvType & ~SkMatrix::kTranslate_Mask)) == 0); SkASSERT(s.fInvKy == 0); SkASSERT(count > 0 && colors != nullptr); @@ -507,11 +505,10 @@ static void Repeat_S32_D32_nofilter_trans_shaderproc(const void* sIn, } } -static void S32_D32_constX_shaderproc(const void* sIn, +static void S32_D32_constX_shaderproc(const SkBitmapProcState& s, int x, int y, SkPMColor* SK_RESTRICT colors, int count) { - const SkBitmapProcState& s = *static_cast<const SkBitmapProcState*>(sIn); SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask)) == 0); SkASSERT(s.fInvKy == 0); SkASSERT(count > 0 && colors != nullptr); @@ -621,7 +618,7 @@ static void S32_D32_constX_shaderproc(const void* sIn, sk_memset32(colors, color, count); } -static void DoNothing_shaderproc(const void*, int x, int y, +static void DoNothing_shaderproc(const SkBitmapProcState&, int x, int y, SkPMColor* SK_RESTRICT colors, int count) { // if we get called, the matrix is too tricky, so we just draw nothing sk_memset32(colors, 0, count); @@ -814,9 +811,8 @@ int SkBitmapProcState::maxCountForBufferSize(size_t bufferSize) const { /////////////////////// -void Clamp_S32_opaque_D32_nofilter_DX_shaderproc(const void* sIn, int x, int y, +void Clamp_S32_opaque_D32_nofilter_DX_shaderproc(const SkBitmapProcState& s, int x, int y, SkPMColor* SK_RESTRICT dst, int count) { - const SkBitmapProcState& s = *static_cast<const SkBitmapProcState*>(sIn); SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask)) == 0); |