diff options
author | Andy Wingo <wingo@pobox.com> | 2011-05-13 15:45:43 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2011-05-13 15:45:43 +0200 |
commit | 86fb1eb631d455aec634aa475a14d2c88052752c (patch) | |
tree | 98936072396a05aa1e4a6d177452f6d5e65a62f5 /libguile/weaks.c | |
parent | fc7bd367ab4b5027a7f80686b1e229c62e43c90b (diff) | |
parent | 2002f1f84797c2c46d0634eabd5ac5fd61e13d73 (diff) | |
download | guile-86fb1eb631d455aec634aa475a14d2c88052752c.tar.gz |
merge strictness branch from 2.0
Diffstat (limited to 'libguile/weaks.c')
-rw-r--r-- | libguile/weaks.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/libguile/weaks.c b/libguile/weaks.c index 1d5fcf469..92d351e51 100644 --- a/libguile/weaks.c +++ b/libguile/weaks.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1995,1996,1998,2000,2001, 2003, 2006, 2008, 2009, 2010 Free Software Foundation, Inc. +/* Copyright (C) 1995,1996,1998,2000,2001, 2003, 2006, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -62,11 +62,9 @@ scm_weak_car_pair (SCM car, SCM cdr) cell->word_1 = cdr; if (SCM_NIMP (car)) - { - /* Weak car cells make sense iff the car is non-immediate. */ - SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &cell->word_0, - (GC_PTR) SCM_UNPACK (car)); - } + /* Weak car cells make sense iff the car is non-immediate. */ + SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &cell->word_0, + (GC_PTR) SCM2PTR (car)); return (SCM_PACK (cell)); } @@ -83,11 +81,9 @@ scm_weak_cdr_pair (SCM car, SCM cdr) cell->word_1 = cdr; if (SCM_NIMP (cdr)) - { - /* Weak cdr cells make sense iff the cdr is non-immediate. */ - SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &cell->word_1, - (GC_PTR) SCM_UNPACK (cdr)); - } + /* Weak cdr cells make sense iff the cdr is non-immediate. */ + SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &cell->word_1, + (GC_PTR) SCM2PTR (cdr)); return (SCM_PACK (cell)); } @@ -103,15 +99,11 @@ scm_doubly_weak_pair (SCM car, SCM cdr) cell->word_1 = cdr; if (SCM_NIMP (car)) - { - SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &cell->word_0, - (GC_PTR) SCM_UNPACK (car)); - } + SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &cell->word_0, + (GC_PTR) SCM2PTR (car)); if (SCM_NIMP (cdr)) - { - SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &cell->word_1, - (GC_PTR) SCM_UNPACK (cdr)); - } + SCM_I_REGISTER_DISAPPEARING_LINK ((GC_PTR) &cell->word_1, + (GC_PTR) SCM2PTR (cdr)); return (SCM_PACK (cell)); } |