From c961dc646e63a0cb54bd772b5f4e48c36fd1acc0 Mon Sep 17 00:00:00 2001
From: "hp.com!davidm" <hp.com!davidm>
Date: Tue, 31 Aug 2004 13:59:10 +0000
Subject: [PATCH] (sigsetjmp): Use macros from jmpbuf.h instead of hardcoded
 values.

(Logical change 1.259)
---
 src/sigsetjmp.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/src/sigsetjmp.c b/src/sigsetjmp.c
index 73782879..87df5ed8 100644
--- a/src/sigsetjmp.c
+++ b/src/sigsetjmp.c
@@ -1,5 +1,5 @@
 /* libunwind - a platform-independent unwind library
-   Copyright (C) 2003 Hewlett-Packard Co
+   Copyright (C) 2003-2004 Hewlett-Packard Co
 	Contributed by David Mosberger-Tang <davidm@hpl.hp.com>
 
 This file is part of libunwind.
@@ -27,6 +27,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.  */
 #include <setjmp.h>
 #include <stdlib.h>
 
+#include "jmpbuf.h"
+
 int
 sigsetjmp (sigjmp_buf env, int savemask)
 {
@@ -35,13 +37,14 @@ sigsetjmp (sigjmp_buf env, int savemask)
   /* This should work on most platforms, but may not be
      performance-optimal; check the code! */
 
-  wp[0] = (unw_word_t) __builtin_frame_address (0);
-  wp[1] = (unw_word_t) __builtin_return_address (0);
-  wp[2] = savemask;
+  wp[JB_SP] = (unw_word_t) __builtin_frame_address (0);
+  wp[JB_RP] = (unw_word_t) __builtin_return_address (0);
+  wp[JB_MASK_SAVED] = savemask;
 
   /* Note: we assume here that "wp" has same or better alignment as
      sigset_t.  */
-  if (savemask && sigprocmask (SIG_BLOCK, NULL, (sigset_t *) (wp + 3)) < 0)
+  if (savemask
+      && sigprocmask (SIG_BLOCK, NULL, (sigset_t *) (wp + JB_MASK)) < 0)
     abort ();
   return 0;
 }