[Swift-commit] Cog update
swift at ci.uchicago.edu
swift at ci.uchicago.edu
Mon Apr 30 22:55:03 CDT 2012
------------------------------------------------------------------------
r3400 | hategan | 2012-04-30 22:51:26 -0500 (Mon, 30 Apr 2012) | 1 line
slightly faster and cleaner variable frame cachin code
------------------------------------------------------------------------
Index: modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Variable.java
===================================================================
--- modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Variable.java (revision 3399)
+++ modules/karajan/src/org/globus/cog/karajan/workflow/nodes/functions/Variable.java (working copy)
@@ -40,44 +40,35 @@
public Object function(VariableStack stack) throws ExecutionException {
synchronized (this) {
- if (name == null) {
- name = TypeUtil.toString(A_NAME.getStatic(this)).toLowerCase();
- if (getStaticArguments().size() == 1) {
- java.util.Map<String, Object> m = Collections.emptyMap();
- setStaticArguments(m);
+ if (frame == UNINITIALIZED || frame == VariableStack.NO_FRAME) {
+ if (name == null) {
+ name = TypeUtil.toString(A_NAME.getStatic(this)).toLowerCase();
+ if (getStaticArguments().size() == 1) {
+ java.util.Map<String, Object> m = Collections.emptyMap();
+ setStaticArguments(m);
+ }
}
- }
- }
-
- switch (frame) {
- case UNINITIALIZED:
- case VariableStack.NO_FRAME:
+
if (stack.parentFrame().isDefined("#quoted")) {
Object value = new Identifier(name);
setSimple(value);
return value;
}
- else {
- frame = stack.getVarFrameFromTop(name);
- switch (frame) {
- case VariableStack.NO_FRAME:
- throw new VariableNotFoundException(name);
- case VariableStack.FIRST_FRAME:
- Object value = stack.firstFrame().getVar(name);
- setSimple(value);
- return value;
- case VariableStack.DYNAMIC_FRAME:
- return stack.getVar(name);
- default:
- return stack.getFrameFromTop(frame).getVar(name);
- }
- }
+ frame = stack.getVarFrameFromTop(name);
+ }
+ }
+
+ switch (frame) {
+ case VariableStack.NO_FRAME:
+ throw new VariableNotFoundException(name);
case VariableStack.FIRST_FRAME:
- return stack.firstFrame().getVar(name);
+ Object value = stack.firstFrame().getVar(name);
+ setSimple(value);
+ return value;
case VariableStack.DYNAMIC_FRAME:
- return stack.getVar(name);
+ return stack.getVar(name);
default:
- return stack.getFrameFromTop(frame).getVar(name);
+ return stack.getFrameFromTop(frame).getVar(name);
}
}
}
Index: modules/karajan/src/org/globus/cog/karajan/util/ElementProperty.java
===================================================================
--- modules/karajan/src/org/globus/cog/karajan/util/ElementProperty.java (revision 3399)
+++ modules/karajan/src/org/globus/cog/karajan/util/ElementProperty.java (working copy)
@@ -130,24 +130,17 @@
this.name = ident.getName();
}
- public synchronized Object getValue(VariableStack stack) throws VariableNotFoundException {
+ public Object getValue(VariableStack stack) throws VariableNotFoundException {
+ synchronized(this) {
+ if (frame == UNINITIALIZED || frame == VariableStack.NO_FRAME) {
+ frame = stack.getVarFrameFromTop(name);
+ }
+ }
switch (frame) {
- case UNINITIALIZED:
case VariableStack.NO_FRAME:
- frame = stack.getVarFrameFromTop(name);
- switch (frame) {
- case VariableStack.NO_FRAME:
- throw new VariableNotFoundException(name);
- case VariableStack.FIRST_FRAME:
- value = stack.firstFrame().getVar(name);
- return value;
- case VariableStack.DYNAMIC_FRAME:
- return stack.getVar(name);
- default:
- return stack.getFrameFromTop(frame).getVar(name);
- }
+ throw new VariableNotFoundException(name);
case VariableStack.FIRST_FRAME:
- return value;
+ return stack.firstFrame().getVar(name);
case VariableStack.DYNAMIC_FRAME:
return stack.getVar(name);
default:
More information about the Swift-commit
mailing list