diff options
-rw-r--r-- | libguile/ChangeLog | 6 | ||||
-rw-r--r-- | libguile/gc-card.c | 3 | ||||
-rw-r--r-- | libguile/numbers.c | 2 |
3 files changed, 9 insertions, 2 deletions
diff --git a/libguile/ChangeLog b/libguile/ChangeLog index 3f9667804..2f6c4f82f 100644 --- a/libguile/ChangeLog +++ b/libguile/ChangeLog @@ -1,3 +1,9 @@ +2003-09-18 Dirk Herrmann <D.Herrmann@tu-bs.de> + + * numbers.c (scm_make_complex), gc-card.c (scm_i_sweep_card): Use + sizeof (scm_t_complex) to determine the memory size of the + malloc'd area for complex numbers. + 2003-09-17 Dirk Herrmann <D.Herrmann@tu-bs.de> * numbers.c (scm_bigequal): Fixed. diff --git a/libguile/gc-card.c b/libguile/gc-card.c index 3939417d3..26fd425d5 100644 --- a/libguile/gc-card.c +++ b/libguile/gc-card.c @@ -21,6 +21,7 @@ #include "libguile/_scm.h" #include "libguile/eval.h" +#include "libguile/numbers.h" #include "libguile/stime.h" #include "libguile/stackchk.h" #include "libguile/struct.h" @@ -238,7 +239,7 @@ scm_i_sweep_card (scm_t_cell * p, SCM *free_list, scm_t_heap_segment*seg) /* nothing else to do here since the mpz is in a double cell */ break; case scm_tc16_complex: - scm_gc_free (SCM_COMPLEX_MEM (scmptr), 2*sizeof (double), + scm_gc_free (SCM_COMPLEX_MEM (scmptr), sizeof (scm_t_complex), "complex"); break; default: diff --git a/libguile/numbers.c b/libguile/numbers.c index 661622205..472866bd7 100644 --- a/libguile/numbers.c +++ b/libguile/numbers.c @@ -2510,7 +2510,7 @@ scm_make_complex (double x, double y) else { SCM z; - SCM_NEWSMOB (z, scm_tc16_complex, scm_gc_malloc (2*sizeof (double), + SCM_NEWSMOB (z, scm_tc16_complex, scm_gc_malloc (sizeof (scm_t_complex), "complex")); SCM_COMPLEX_REAL (z) = x; SCM_COMPLEX_IMAG (z) = y; |