From 813fc816238dda378d62781b80f25045e83c6b14 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 6 May 2016 18:28:21 +0530 Subject: [PATCH] ... --- src/calibre/utils/imageops/imageops.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/calibre/utils/imageops/imageops.cpp b/src/calibre/utils/imageops/imageops.cpp index f772f14c3a..e015e9d131 100644 --- a/src/calibre/utils/imageops/imageops.cpp +++ b/src/calibre/utils/imageops/imageops.cpp @@ -606,6 +606,7 @@ void overlay(const QImage &image, QImage &canvas, unsigned int left, unsigned in img = img.convertToFormat(QImage::Format_ARGB32_Premultiplied); if (img.isNull()) throw std::bad_alloc(); } + Py_BEGIN_ALLOW_THREADS; for (r = 0; r < height; r++) { src = reinterpret_cast(img.constScanLine(r)); dest = reinterpret_cast(canvas.scanLine(r + top)); @@ -620,13 +621,16 @@ void overlay(const QImage &image, QImage &canvas, unsigned int left, unsigned in else if (s != 0) dest[left+c] = s + BYTE_MUL(dest[left+c], qAlpha(~s)); } } + Py_END_ALLOW_THREADS; } else { ENSURE32(img); + Py_BEGIN_ALLOW_THREADS; for (r = 0; r < bottom; r++) { src = reinterpret_cast(img.constScanLine(r)); dest = reinterpret_cast(canvas.scanLine(r + top)); memcpy(dest + left, src, (right - left) * sizeof(QRgb)); } + Py_END_ALLOW_THREADS; } } // }}}