Apply source function after source mask in ForwardExtentCopy.

The source function should only get applied to actually copied blocks.
This commit is contained in:
wizjany
2019-03-01 21:15:21 -05:00
parent f46c70093c
commit e53962dadd
3 changed files with 9 additions and 7 deletions

View File

@ -248,9 +248,9 @@ public class ForwardExtentCopy implements Operation {
}
ExtentBlockCopy blockCopy = new ExtentBlockCopy(source, from, destination, to, currentTransform);
RegionMaskingFilter filter = new RegionMaskingFilter(sourceMask, blockCopy);
RegionFunction function = sourceFunction != null ? new CombinedRegionFunction(filter, sourceFunction) : filter;
RegionVisitor blockVisitor = new RegionVisitor(region, function);
RegionMaskingFilter filteredFunction = new RegionMaskingFilter(sourceMask,
sourceFunction == null ? blockCopy : new CombinedRegionFunction(blockCopy, sourceFunction));
RegionVisitor blockVisitor = new RegionVisitor(region, filteredFunction);
lastVisitor = blockVisitor;