2688 |
return SCM_APPLY (proc, t.arg1, SCM_EOL); |
return SCM_APPLY (proc, t.arg1, SCM_EOL); |
2689 |
} |
} |
2690 |
|
|
2691 |
|
|
2692 |
default: |
default: |
2693 |
goto badfun; |
goto badfun; |
2694 |
} |
} |
2735 |
#endif |
#endif |
2736 |
break; |
break; |
2737 |
#endif /* ifdef MEMOIZE_LOCALS */ |
#endif /* ifdef MEMOIZE_LOCALS */ |
2738 |
|
|
2739 |
case scm_tcs_cons_nimcar: |
case scm_tcs_cons_nimcar: |
2740 |
orig_sym = SCM_CAR (x); |
orig_sym = SCM_CAR (x); |
2741 |
if (SCM_SYMBOLP (orig_sym)) |
if (SCM_SYMBOLP (orig_sym)) |
2742 |
{ |
{ |
2743 |
#ifdef USE_THREADS |
#ifdef USE_THREADS |
2744 |
t.lloc = scm_lookupcar1 (x, env, 1); |
{ |
2745 |
if (t.lloc == NULL) |
SCM *location = scm_lookupcar1 (x, env, 1); |
2746 |
{ |
if (location == NULL) |
2747 |
/* we have lost the race, start again. */ |
{ |
2748 |
goto dispatch; |
/* we have lost the race, start again. */ |
2749 |
} |
goto dispatch; |
2750 |
proc = *t.lloc; |
} |
2751 |
|
proc = *location; |
2752 |
|
} |
2753 |
#else |
#else |
2754 |
proc = *scm_lookupcar (x, env, 1); |
proc = *scm_lookupcar (x, env, 1); |
2755 |
#endif |
#endif |