vector/raster: check for 0 size stroke width
authorsubhransu mohanty <sub.mohanty@samsung.com>
Wed, 29 May 2019 07:50:15 +0000 (16:50 +0900)
committerHermet Park <hermetpark@gmail.com>
Wed, 19 Jun 2019 04:32:17 +0000 (13:32 +0900)
src/vector/vraster.cpp

index 0e246be..8e6c2c7 100644 (file)
@@ -463,7 +463,8 @@ void VRaster::generateFillInfo(RleShare &promise, VPath &&path, VRle &&rle,
                                             FillRule fillRule, const VRect &clip)
 {
     if (path.empty()) {
-        promise->set_value(VRle());
+        rle.reset();
+        promise->set_value(rle);
         return;
     }
     return RleTaskScheduler::instance().process(RleTask(promise, std::move(path), std::move(rle), fillRule, clip));
@@ -473,8 +474,9 @@ void VRaster::generateStrokeInfo(RleShare &promise, VPath &&path, VRle &&rle, Ca
                                  JoinStyle join, float width,
                                  float meterLimit, const VRect &clip)
 {
-    if (path.empty()) {
-        promise->set_value(VRle());
+    if (path.empty() || vCompare(width, 0.0f)) {
+        rle.reset();
+        promise->set_value(rle);
         return;
     }
     return RleTaskScheduler::instance().process(RleTask(promise, std::move(path), std::move(rle), cap, join, width, meterLimit, clip));