GC_PROTECT some variables.
This commit is contained in:
parent
fd4634e27f
commit
c5d8b5d1b4
|
@ -117,6 +117,12 @@ static double mrg32k3a(state_t *s) { /* (double), in {0..m1-1} */
|
|||
s48_value mrg32k3a_pack_state1(s48_value state) {
|
||||
s48_value result;
|
||||
state_t s;
|
||||
S48_DECLARE_GC_PROTECT(1);
|
||||
|
||||
S48_GC_PROTECT_1(state); /* s48_extract_integer may GC */
|
||||
|
||||
result = S48_MAKE_VALUE(state_t);
|
||||
|
||||
|
||||
#define REF(i) (double)s48_extract_integer(S48_VECTOR_REF(state, (long)(i)))
|
||||
|
||||
|
@ -130,6 +136,8 @@ s48_value mrg32k3a_pack_state1(s48_value state) {
|
|||
|
||||
#undef REF
|
||||
|
||||
S48_GC_UNPROTECT();
|
||||
|
||||
/* box s into a Scheme object */
|
||||
result = S48_MAKE_VALUE(state_t);
|
||||
S48_SET_VALUE(result, state_t, s);
|
||||
|
@ -137,9 +145,12 @@ s48_value mrg32k3a_pack_state1(s48_value state) {
|
|||
}
|
||||
|
||||
s48_value mrg32k3a_unpack_state1(s48_value state) {
|
||||
s48_value result;
|
||||
s48_value result = S48_UNSPECIFIC;
|
||||
state_t s;
|
||||
|
||||
S48_DECLARE_GC_PROTECT(1);
|
||||
S48_GC_PROTECT_1(result);
|
||||
|
||||
/* unbox s from the Scheme object */
|
||||
s = S48_EXTRACT_VALUE(state, state_t);
|
||||
|
||||
|
@ -161,6 +172,8 @@ s48_value mrg32k3a_unpack_state1(s48_value state) {
|
|||
|
||||
#undef SET
|
||||
|
||||
S48_GC_UNPROTECT();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue