[Openmcl-cvs-notifications] r13898 - /release/1.5/source/lisp-kernel/thread_manager.c
gb at clozure.com
gb at clozure.com
Tue Jun 29 14:25:34 UTC 2010
Author: gb
Date: Tue Jun 29 08:25:33 2010
New Revision: 13898
Log:
Propagate r13869 from trunk to 1.5.
Modified:
release/1.5/source/lisp-kernel/thread_manager.c
Modified: release/1.5/source/lisp-kernel/thread_manager.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- release/1.5/source/lisp-kernel/thread_manager.c (original)
+++ release/1.5/source/lisp-kernel/thread_manager.c Tue Jun 29 08:25:33 2010
@@ -99,6 +99,8 @@
(target->unwinding !=3D 0) ||
(!((where < (pc)lisp_global(HEAP_END)) &&
(where >=3D (pc)lisp_global(HEAP_START))) &&
+ (!((where < (pc)(managed_static_area->active)) &&
+ (where >=3D (pc)(readonly_area->low)))) &&
!((where < spentry_end) && (where >=3D spentry_start)) &&
!((where < subprims_end) && (where >=3D subprims_start)) &&
!((where < (pc) 0x16000) &&
@@ -1946,7 +1948,11 @@
#ifdef WIN_64
*pcontext =3D * (CONTEXT *)(pcontext->Rcx);
#else
- *pcontext =3D * (CONTEXT *)(pcontext->Ecx);
+ if (where =3D=3D restore_windows_context_start) {
+ *pcontext =3D * (CONTEXT *)((pcontext->Esp)+4);
+ } else {
+ *pcontext =3D * (CONTEXT *)(pcontext->Ecx);
+ }
#endif
} else {
/* Most of the context has already been restored; fix %rcx
@@ -1969,6 +1975,11 @@
#endif
}
tcr->pending_exception_context =3D NULL;
+ /* We basically never return from an exception unless we
+ were executing lisp code when the exception returned.
+ If that ever changes, we need to know what valence
+ would have been restored here.*/
+ tcr->valence =3D TCR_STATE_LISP;
}
=
Boolean
@@ -2015,6 +2026,8 @@
point. */
if (!((where < (pc)lisp_global(HEAP_END)) &&
(where >=3D (pc)lisp_global(HEAP_START))) &&
+ (!((where < (pc)(managed_static_area->active)) &&
+ (where >=3D (pc)(readonly_area->low)))) &&
!((where < spentry_end) && (where >=3D spentry_start)) &&
!((where < subprims_end) && (where >=3D subprims_start)) &&
!((where < (pc) 0x16000) &&
More information about the Openmcl-cvs-notifications
mailing list