if (!mRleFuture) mRleFuture = std::make_shared<VSharedState<VRle>>();
+ if (mRleFuture->valid()) mRle = mRleFuture->get();
mRleFuture->reuse();
+
VRaster::generateFillInfo(mRleFuture, std::move(tmp), std::move(mRle));
mRle = VRle();
}
}
}
- mRle = rle;
+ if (!rle.empty() && !rle.unique()) {
+ mRle.clone(rle);
+ } else {
+ mRle = rle;
+ }
mDirty = false;
return mRle;
}
if (!mRleFuture) mRleFuture = std::make_shared<VSharedState<VRle>>();
+ if (mRleFuture->valid()) mRle = mRleFuture->get();
mRleFuture->reuse();
+
VRaster::generateFillInfo(mRleFuture, std::move(tmp), std::move(mRle));
mRle = VRle();
}