protected Parameter[] getClosureSharedVariables(ClosureExpression ce) { VariableScope scope = ce.getVariableScope(); Parameter[] ret = new Parameter[scope.getReferencedLocalVariablesCount()]; int index = 0; for (Iterator iter = scope.getReferencedLocalVariablesIterator(); iter.hasNext();) { Variable element = (org.codehaus.groovy.ast.Variable) iter.next(); Parameter p = new Parameter(element.getType(), element.getName()); p.setOriginType(element.getOriginType()); p.setClosureSharedVariable(element.isClosureSharedVariable()); ret[index] = p; index++; } return ret; }
final Parameter[] newParams = new Parameter[origParams.length + 1]; Parameter p = new Parameter(targetClass, "$this"); p.setClosureSharedVariable(true); newParams[0] = p; parameter.set(p);
parameters = new Parameter[]{it}; Variable ref = expression.getVariableScope().getDeclaredVariable("it"); if (ref!=null) it.setClosureSharedVariable(ref.isClosureSharedVariable());
private static void wrapStatements(ClassNode declaringClass, MethodNode method, String threadingMethod) { Statement code = method.getCode(); Statement wrappedCode = wrapStatements(code, threadingMethod); if (code != wrappedCode) { method.setCode(wrappedCode); for (Parameter param : method.getParameters()) { param.setClosureSharedVariable(true); } } }
protected Parameter[] getClosureSharedVariables(ClosureExpression ce) { VariableScope scope = ce.getVariableScope(); Parameter[] ret = new Parameter[scope.getReferencedLocalVariablesCount()]; int index = 0; for (Iterator iter = scope.getReferencedLocalVariablesIterator(); iter.hasNext();) { Variable element = (org.codehaus.groovy.ast.Variable) iter.next(); Parameter p = new Parameter(element.getType(), element.getName()); p.setOriginType(element.getOriginType()); p.setClosureSharedVariable(element.isClosureSharedVariable()); ret[index] = p; index++; } return ret; }
final Parameter[] newParams = new Parameter[origParams.length + 1]; Parameter p = new Parameter(targetClass, "$this"); p.setClosureSharedVariable(true); newParams[0] = p; parameter.set(p);
final Parameter[] newParams = new Parameter[origParams.length + 1]; Parameter p = new Parameter(targetClass, "$this"); p.setClosureSharedVariable(true); newParams[0] = p; parameter.set(p);
param.setClosureSharedVariable(false); v = compileStack.defineVariable(param, true); param.setClosureSharedVariable(true); v.setHolder(true);
param.setClosureSharedVariable(false); v = compileStack.defineVariable(param, true); param.setClosureSharedVariable(true); v.setHolder(true);
param.setClosureSharedVariable(false); v = compileStack.defineVariable(param, true); param.setClosureSharedVariable(true); v.setHolder(true);
p.setClosureSharedVariable(true); variableScope.putReferencedLocalVariable(p); VariableExpression ve = new VariableExpression(p);
parameters = new Parameter[]{it}; org.codehaus.groovy.ast.Variable ref = expression.getVariableScope().getDeclaredVariable("it"); if (ref!=null) it.setClosureSharedVariable(ref.isClosureSharedVariable());
parameters = new Parameter[]{it}; org.codehaus.groovy.ast.Variable ref = expression.getVariableScope().getDeclaredVariable("it"); if (ref!=null) it.setClosureSharedVariable(ref.isClosureSharedVariable());
parameters = new Parameter[]{it}; org.codehaus.groovy.ast.Variable ref = expression.getVariableScope().getDeclaredVariable("it"); if (ref!=null) it.setClosureSharedVariable(ref.isClosureSharedVariable());
parameters = new Parameter[]{it}; Variable ref = expression.getVariableScope().getDeclaredVariable("it"); if (ref!=null) it.setClosureSharedVariable(ref.isClosureSharedVariable());