diff --git a/src/vector/vrle.cpp b/src/vector/vrle.cpp index 3d4393d344..7db043b2b7 100644 --- a/src/vector/vrle.cpp +++ b/src/vector/vrle.cpp @@ -134,8 +134,14 @@ void VRle::VRleData::operator*=(int alpha) void VRle::VRleData::opIntersect(const VRect &r, VRle::VRleSpanCb cb, void *userData) const { - VRect clip = r; + if (empty()) return; + if (r.contains(bbox())) { + cb(mSpans.size(), mSpans.data(), userData); + return; + } + + VRect clip = r; VRleHelper tresult, tmp_obj; std::array array;