diff --git a/src/calibre/utils/imageops/imageops.cpp b/src/calibre/utils/imageops/imageops.cpp index 71df9666e5..3b4f41e3f7 100644 --- a/src/calibre/utils/imageops/imageops.cpp +++ b/src/calibre/utils/imageops/imageops.cpp @@ -582,9 +582,9 @@ QImage despeckle(const QImage &image) { // overlay() {{{ static inline unsigned int BYTE_MUL(unsigned int x, unsigned int a) { - quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ff) * a; - t = (t + ((t >> 8) & 0xff00ff00ff00ff) + 0x80008000800080) >> 8; - t &= 0x00ff00ff00ff00ff; + quint64 t = (((quint64(x)) | ((quint64(x)) << 24)) & 0x00ff00ff00ff00ffULL) * a; + t = (t + ((t >> 8) & 0xff00ff00ff00ffULL) + 0x80008000800080ULL) >> 8; + t &= 0x00ff00ff00ff00ffULL; return ((unsigned int)(t)) | ((unsigned int)(t >> 24)); }