The given VPath should be moved by std::move.
The std:move only work as our purpose when it is non-const variable.
And it also fix a crash issue when its path is not changed, but its other properties are changed.
Change-Id: I4135066f99c0eed07e033c368dc4b60e6703ca37
i.drawable->mFlag = VDrawable::DirtyState::None;
i.paintNodeRef->updateRenderNode(i.pathNodeRef, i.drawable,
i.sameGroup);
i.drawable->mFlag = VDrawable::DirtyState::None;
i.paintNodeRef->updateRenderNode(i.pathNodeRef, i.drawable,
i.sameGroup);
- if (mPathChanged) {
- i.drawable->mPath = mFinalPath;
i.drawable->mFlag |= VDrawable::DirtyState::Path;
i.drawable->mFlag |= VDrawable::DirtyState::Path;
+
+ if (i.drawable->mFlag & VDrawable::DirtyState::Path)
+ i.drawable->mPath = mFinalPath;
- std::future<VRle> strokeRle(const VPath &&path, VRle &&rle, CapStyle cap, JoinStyle join,
+ std::future<VRle> strokeRle(VPath &&path, VRle &&rle, CapStyle cap, JoinStyle join,
float width, float meterLimit)
{
RleTask *task = new RleTask();
float width, float meterLimit)
{
RleTask *task = new RleTask();
- std::future<VRle> fillRle(const VPath &&path, VRle &&rle, FillRule fillRule)
+ std::future<VRle> fillRle(VPath &&path, VRle &&rle, FillRule fillRule)
{
RleTask *task = new RleTask();
task->path = std::move(path);
{
RleTask *task = new RleTask();
task->path = std::move(path);
-std::future<VRle> VRaster::generateFillInfo(const VPath &&path, VRle &&rle,
+std::future<VRle> VRaster::generateFillInfo(VPath &&path, VRle &&rle,
FillRule fillRule)
{
if (path.isEmpty()) {
FillRule fillRule)
{
if (path.isEmpty()) {
return raster_scheduler.fillRle(std::move(path), std::move(rle), fillRule);
}
return raster_scheduler.fillRle(std::move(path), std::move(rle), fillRule);
}
-std::future<VRle> VRaster::generateStrokeInfo(const VPath &&path, VRle &&rle, CapStyle cap,
+std::future<VRle> VRaster::generateStrokeInfo(VPath &&path, VRle &&rle, CapStyle cap,
JoinStyle join, float width,
float meterLimit)
{
JoinStyle join, float width,
float meterLimit)
{
VRaster &operator=(VRaster const &) = delete;
VRaster &operator=(VRaster &&) = delete;
VRaster &operator=(VRaster const &) = delete;
VRaster &operator=(VRaster &&) = delete;
- std::future<VRle> generateFillInfo(const VPath &&path, VRle &&rle,
+ std::future<VRle> generateFillInfo(VPath &&path, VRle &&rle,
FillRule fillRule = FillRule::Winding);
FillRule fillRule = FillRule::Winding);
- std::future<VRle> generateStrokeInfo(const VPath &&path, VRle &&rle, CapStyle cap,
+ std::future<VRle> generateStrokeInfo(VPath &&path, VRle &&rle, CapStyle cap,
JoinStyle join, float width,
float meterLimit);
JoinStyle join, float width,
float meterLimit);