Source:
<code>private CallInformation(Tuple actualParameters, PQuery referredQuery, final Set<Integer> bindings, Map<PVariable, Integer> variableMapping) { this.referredQuery = referredQuery; int keySize = actualParameters.getSize(); List<Integer> parameterMaskIndices = new ArrayList<>(); int[] fullParameterMaskIndices = new int[keySize]; for (int i = 0; i < keySize; i++) { PParameter symbolicParameter = referredQuery.getParameters().get(i); PVariable parameter = (PVariable) actualParameters.get(i); Integer originalFrameIndex = variableMapping.get(parameter); mapping.put(symbolicParameter, originalFrameIndex); fullParameterMaskIndices[i] = originalFrameIndex; if (bindings.contains(originalFrameIndex)) { parameterMaskIndices.add(originalFrameIndex); adornment.add(symbolicParameter); } } thinFrameMask = TupleMask.fromSelectedIndices(variableMapping.size(), parameterMaskIndices); fullFrameMask = TupleMask.fromSelectedIndices(variableMapping.size(), fullParameterMaskIndices); int[] boundParameterIndices = new int[adornment.size()]; int boundIndex = 0; freeParameterIndices = new int[keySize - adornment.size()]; int freeIndex = 0; for (int i = 0; i < keySize; i++) { if (bindings.contains(variableMapping.get(actualParameters.get(i)))) { boundParameterIndices[boundIndex] = i; boundIndex++; } else { freeParameterIndices[freeIndex] = i; freeIndex++; } } <START> parameterMask = TupleMask.fromSelectedIndices(thinFrameMask.getSize(), boundParameterIndices); <END> matcherReference = new MatcherReference(referredQuery, adornment); }</code><technical_language>keySize? parameters of called pattern, select bound ones... source width number of symbolic parameters</technical_language>

Target:
private CallInformation(Tuple actualParameters, PQuery referredQuery, final Set<Integer> bindings, Map<PVariable, Integer> variableMapping) { this.referredQuery = referredQuery; int keySize = actualParameters.getSize(); List<Integer> parameterMaskIndices = new ArrayList<>(); int[] fullParameterMaskIndices = new int[keySize]; for (int i = 0; i < keySize; i++) { PParameter symbolicParameter = referredQuery.getParameters().get(i); PVariable parameter = (PVariable) actualParameters.get(i); Integer originalFrameIndex = variableMapping.get(parameter); mapping.put(symbolicParameter, originalFrameIndex); fullParameterMaskIndices[i] = originalFrameIndex; if (bindings.contains(originalFrameIndex)) { parameterMaskIndices.add(originalFrameIndex); adornment.add(symbolicParameter); } } thinFrameMask = TupleMask.fromSelectedIndices(variableMapping.size(), parameterMaskIndices); fullFrameMask = TupleMask.fromSelectedIndices(variableMapping.size(), fullParameterMaskIndices); int[] boundParameterIndices = new int[adornment.size()]; int boundIndex = 0; freeParameterIndices = new int[keySize - adornment.size()]; int freeIndex = 0; for (int i = 0; i < keySize; i++) { if (bindings.contains(variableMapping.get(actualParameters.get(i)))) { boundParameterIndices[boundIndex] = i; boundIndex++; } else { freeParameterIndices[freeIndex] = i; freeIndex++; } } parameterMask = TupleMask.fromSelectedIndices(keySize, boundParameterIndices); matcherReference = new MatcherReference(referredQuery, adornment); }