diff options
author | Marius Vollmer <mvo@zagadka.de> | 2004-12-23 15:30:16 +0000 |
---|---|---|
committer | Marius Vollmer <mvo@zagadka.de> | 2004-12-23 15:30:16 +0000 |
commit | 5c5c27dc0d3ff3d74ddb64b3054900ebbbab6d61 (patch) | |
tree | b36d02682ea7e050c99c3a8aaf8023009e64663c /libguile/continuations.h | |
parent | e6e63c5632cc83ba922e559cf515282e02d954b9 (diff) | |
download | guile-5c5c27dc0d3ff3d74ddb64b3054900ebbbab6d61.tar.gz |
(scm_t_contregs): New 'offset' member for relocating debug frames.
(scm_make_continuation): Set it.
Diffstat (limited to 'libguile/continuations.h')
-rw-r--r-- | libguile/continuations.h | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/libguile/continuations.h b/libguile/continuations.h index 6f0982033..d1298c22d 100644 --- a/libguile/continuations.h +++ b/libguile/continuations.h @@ -55,8 +55,19 @@ typedef struct size_t num_stack_items; /* size of the saved stack. */ unsigned long seq; /* dynamic root identifier. */ - /* the most recently created debug frame on the live stack, before - it was saved. */ + /* The offset from the live stack location and this copy. This is + used to adjust pointers from within the copied stack to the stack + itself. + + Thus, when you read a pointer from the copied stack that points + into the live stack, you need to add OFFSET so that it points + into the copy. + */ + scm_t_ptrdiff offset; + + /* The most recently created debug frame on the live stack, before + it was saved. This need to be adjusted with OFFSET, above. + */ struct scm_t_debug_frame *dframe; SCM_STACKITEM stack[1]; /* copied stack of size num_stack_items. */ |