Changeset 12063
- Timestamp:
- 07/26/09 20:33:16 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/Lisp.java
r12062 r12063 141 141 throws ConditionThrowable 142 142 { 143 LispObject stack = thread.getStack();144 thread.pushStackFrame(fun, args);145 143 thread._values = null; 146 LispObject result; 147 if (profiling) 148 if (!sampling) 149 fun.incrementCallCount(); 150 try 151 { 152 switch (args.length) 153 { 154 case 0: 155 result = fun.execute(); 156 break; 157 case 1: 158 result = fun.execute(args[0]); 159 break; 160 case 2: 161 result = fun.execute(args[0], args[1]); 162 break; 163 case 3: 164 result = fun.execute(args[0], args[1], args[2]); 165 break; 166 case 4: 167 result = fun.execute(args[0], args[1], args[2], args[3]); 168 break; 169 case 5: 170 result = fun.execute(args[0], args[1], args[2], args[3], 171 args[4]); 172 break; 173 case 6: 174 result = fun.execute(args[0], args[1], args[2], args[3], 175 args[4], args[5]); 176 break; 177 case 7: 178 result = fun.execute(args[0], args[1], args[2], args[3], 179 args[4], args[5], args[6]); 180 break; 181 case 8: 182 result = fun.execute(args[0], args[1], args[2], args[3], 183 args[4], args[5], args[6], args[7]); 184 break; 185 default: 186 result = fun.execute(args); 187 break; 188 } 189 } 190 finally 191 { 192 thread.setStack(stack); 193 } 194 return result; 144 145 // 26-07-2009: For some reason we cannot "just" call the array version; 146 // it causes an error (Wrong number of arguments for LOOP-FOR-IN) 147 // which is probably a sign of an issue in our design? 148 switch (args.length) 149 { 150 case 0: 151 return thread.execute(fun); 152 case 1: 153 return thread.execute(fun, args[0]); 154 case 2: 155 return thread.execute(fun, args[0], args[1]); 156 case 3: 157 return thread.execute(fun, args[0], args[1], args[2]); 158 case 4: 159 return thread.execute(fun, args[0], args[1], args[2], args[3]); 160 case 5: 161 return thread.execute(fun, args[0], args[1], args[2], args[3], 162 args[4]); 163 case 6: 164 return thread.execute(fun, args[0], args[1], args[2], args[3], 165 args[4], args[5]); 166 case 7: 167 return thread.execute(fun, args[0], args[1], args[2], args[3], 168 args[4], args[5], args[6]); 169 case 8: 170 return thread.execute(fun, args[0], args[1], args[2], args[3], 171 args[4], args[5], args[6], args[7]); 172 default: 173 return thread.execute(fun, args); 174 } 195 175 } 196 176
Note: See TracChangeset
for help on using the changeset viewer.