Changeset 276 for trunk/thune/eval.c
- Timestamp:
- 09/18/06 03:43:03 (2 years ago)
- Files:
-
- 1 modified
-
trunk/thune/eval.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/thune/eval.c
r270 r276 186 186 187 187 188 typedef int (*UDatatypeSelFunc)( UThread*, UCell*, const UCell*, UCell* ); 189 188 190 /** 189 191 Returns non-zero if successful. … … 241 243 } 242 244 goto set_none; 245 246 default: 247 if( ur_type(val) >= UT_BI_COUNT ) 248 { 249 UDatatypeSelFunc func = ur_thread->env->customDT 250 [ ur_type(val) - UT_BI_COUNT ].selectAtom; 251 if( func ) 252 return func( ur_thread, val, sel, res ); 253 } 254 goto set_none; 243 255 } 244 256 } … … 391 403 UString* str; 392 404 ur_throwErr( ur_thread, UR_EX_DATATYPE, 393 "found %s !at TOS-%d; expected ",405 "found %s at TOS-%d; expected ", 394 406 ur_typeName( ur_type(it) ), 395 407 count - (int) (end - it) ); … … 1342 1354 1343 1355 --pc; 1344 ur_throwErr( ur_thread, UR_EX_DATATYPE, "invalid type %s !for '%s opcode",1356 ur_throwErr( ur_thread, UR_EX_DATATYPE, "invalid type %s for '%s opcode", 1345 1357 ur_typeName( ur_type(UR_TOS) ), 1346 1358 ur_atomCStr( ur_atom(pc), 0 ) ); … … 2346 2358 if( ur_atom(it) == UR_ATOM_BAR ) 2347 2359 inLocal = 1; 2348 else if( ur_atom(it) >= UT_ COUNT )2360 else if( ur_atom(it) >= UT_BI_COUNT ) 2349 2361 { 2350 2362 if( ! inLocal ) … … 2369 2381 if( ur_atom(it) == UR_ATOM_BAR ) 2370 2382 inLocal = 1; 2371 else if( ur_atom(it) < UT_ COUNT )2383 else if( ur_atom(it) < UT_BI_COUNT ) 2372 2384 { 2373 2385 UCell* cell = dst + varc - 1;
