~vcs-imports/libpixman/master

  • Committer: Manuel Stoeckl
  • Date: 2021-08-10 01:43:58 UTC
  • Revision ID: git-v1:5f5e752f15acff7f39c861f2defed8ca10fa041c
Fix masked pixel fetching with wide format

In __bits_image_fetch_affine_no_alpha and __bits_image_fetch_general,
when `wide` is true, the mask is actually an array of argb_t instead
of the array of uint32_t it was cast to, and the access to `mask[i]`
does not correctly detect when the pixel is nontrivial. The code now
uses a check appropriate for argb_t when `wide` is true.

One caveat: this new check only skips entries when the mask pixel data
is binary all zero; this misses cases like `-0.f` which would be caught
by the FLOAT_IS_ZERO macro. As the mask check only appears to be a
performance optimization to avoid loading inconsequential pixels, it
erring on the side of loading more pixels is safe.

Signed-off-by: Manuel Stoeckl <code@mstoeckl.com>
Filename Latest Rev Last Changed Committer Comment Size
..
File ci.sh 2059.1.1 6 years ago Adam Jackson ci: Add .gitlab-ci.yml Just builds on Fedora 28 f 49 bytes Diff Download File