152 |
|
|
153 |
#define EXTEND_ENV SCM_EXTEND_ENV |
#define EXTEND_ENV SCM_EXTEND_ENV |
154 |
|
|
155 |
|
SCM_REC_CRITICAL_SECTION (source); |
156 |
|
#define SOURCE_SECTION_START SCM_REC_CRITICAL_SECTION_START (source); |
157 |
|
#define SOURCE_SECTION_END SCM_REC_CRITICAL_SECTION_END (source); |
158 |
|
|
159 |
SCM * |
SCM * |
160 |
scm_ilookup (SCM iloc, SCM env) |
scm_ilookup (SCM iloc, SCM env) |
161 |
{ |
{ |
1584 |
{ |
{ |
1585 |
if (SCM_ISYMP (SCM_CAR (code))) |
if (SCM_ISYMP (SCM_CAR (code))) |
1586 |
{ |
{ |
1587 |
code = scm_m_expand_body (code, env); |
SOURCE_SECTION_START; |
1588 |
|
/* check for race condition */ |
1589 |
|
if (SCM_ISYMP (SCM_CAR (code))) |
1590 |
|
code = scm_m_expand_body (code, env); |
1591 |
|
SOURCE_SECTION_END; |
1592 |
goto again; |
goto again; |
1593 |
} |
} |
1594 |
} |
} |
1987 |
{ |
{ |
1988 |
if (SCM_ISYMP (form)) |
if (SCM_ISYMP (form)) |
1989 |
{ |
{ |
1990 |
x = scm_m_expand_body (x, env); |
SOURCE_SECTION_START; |
1991 |
|
/* check for race condition */ |
1992 |
|
if (SCM_ISYMP (SCM_CAR (x))) |
1993 |
|
x = scm_m_expand_body (x, env); |
1994 |
|
SOURCE_SECTION_END; |
1995 |
goto nontoplevel_begin; |
goto nontoplevel_begin; |
1996 |
} |
} |
1997 |
else |
else |
3646 |
{ |
{ |
3647 |
if (SCM_ISYMP (SCM_CAR (proc))) |
if (SCM_ISYMP (SCM_CAR (proc))) |
3648 |
{ |
{ |
3649 |
proc = scm_m_expand_body (proc, args); |
SOURCE_SECTION_START; |
3650 |
|
/* check for race condition */ |
3651 |
|
if (SCM_ISYMP (SCM_CAR (proc))) |
3652 |
|
proc = scm_m_expand_body (proc, args); |
3653 |
|
SOURCE_SECTION_END; |
3654 |
goto again; |
goto again; |
3655 |
} |
} |
3656 |
else |
else |