diff options
author | Christopher Faylor <me@cgf.cx> | 2000-05-26 06:24:58 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-05-26 06:24:58 +0000 |
commit | e1e61b9ae5921d8f97f8089c53a281839224b3ed (patch) | |
tree | 1e2ea55938ec044baef435ffdad353d78ef6d435 /winsup/cygwin/sigproc.h | |
parent | 6880ecefaaa4f2f081809b52f5f35b26b17526b0 (diff) | |
download | newlib-e1e61b9ae5921d8f97f8089c53a281839224b3ed.zip newlib-e1e61b9ae5921d8f97f8089c53a281839224b3ed.tar.gz newlib-e1e61b9ae5921d8f97f8089c53a281839224b3ed.tar.bz2 |
* sigproc.h (sigframe::set): Accept a default frame pointer.
* sigproc.cc (sig_send): Use passed in frame pointer, if appropriate.
Diffstat (limited to 'winsup/cygwin/sigproc.h')
-rw-r--r-- | winsup/cygwin/sigproc.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/sigproc.h b/winsup/cygwin/sigproc.h index d850ec9..581a5b5 100644 --- a/winsup/cygwin/sigproc.h +++ b/winsup/cygwin/sigproc.h @@ -49,12 +49,15 @@ private: sigthread *st; public: - void set (sigthread &t, int up = 1) + void set (sigthread &t, int up = 1, DWORD ebp = 0) { t.lock->acquire (); st = &t; - t.frame = (DWORD) (up ? __builtin_frame_address (1) : - __builtin_frame_address (0)); + if (ebp) + t.frame = ebp; + else + t.frame = (DWORD) (up ? __builtin_frame_address (1) : + __builtin_frame_address (0)); t.lock->release (); } |