1939 |
debug.info->e.env = env; |
debug.info->e.env = env; |
1940 |
if (scm_check_entry_p && SCM_TRAPS_P) |
if (scm_check_entry_p && SCM_TRAPS_P) |
1941 |
{ |
{ |
1942 |
if (SCM_ENTER_FRAME_P || (SCM_BREAKPOINTS_P && SRCBRKP (x))) |
if (SCM_ENTER_FRAME_P |
1943 |
|
|| (SCM_BREAKPOINTS_P && scm_c_source_property_breakpoint_p (x))) |
1944 |
{ |
{ |
1945 |
SCM tail = SCM_BOOL(SCM_TAILRECP (debug)); |
SCM stackrep; |
1946 |
|
SCM tail = SCM_BOOL (SCM_TAILRECP (debug)); |
1947 |
SCM_SET_TAILREC (debug); |
SCM_SET_TAILREC (debug); |
1948 |
if (SCM_CHEAPTRAPS_P) |
if (SCM_CHEAPTRAPS_P) |
1949 |
arg1 = scm_make_debugobj (&debug); |
stackrep = scm_make_debugobj (&debug); |
1950 |
else |
else |
1951 |
{ |
{ |
1952 |
int first; |
int first; |
1953 |
SCM val = scm_make_continuation (&first); |
SCM val = scm_make_continuation (&first); |
1954 |
|
|
1955 |
if (first) |
if (first) |
1956 |
arg1 = val; |
stackrep = val; |
1957 |
else |
else |
1958 |
{ |
{ |
1959 |
x = val; |
x = val; |
1968 |
SCM_TRAPS_P = 0; |
SCM_TRAPS_P = 0; |
1969 |
scm_call_4 (SCM_ENTER_FRAME_HDLR, |
scm_call_4 (SCM_ENTER_FRAME_HDLR, |
1970 |
scm_sym_enter_frame, |
scm_sym_enter_frame, |
1971 |
arg1, |
stackrep, |
1972 |
tail, |
tail, |
1973 |
scm_unmemocopy (x, env)); |
scm_unmemocopy (x, env)); |
1974 |
SCM_TRAPS_P = 1; |
SCM_TRAPS_P = 1; |