84 |
base = scm_gc_malloc (c_size * sizeof (scm_t_bits), "weak vector"); |
base = scm_gc_malloc (c_size * sizeof (scm_t_bits), "weak vector"); |
85 |
for (j = 0; j != c_size; ++j) |
for (j = 0; j != c_size; ++j) |
86 |
base[j] = SCM_UNPACK (fill); |
base[j] = SCM_UNPACK (fill); |
87 |
v = scm_alloc_double_cell (SCM_MAKE_VECTOR_TAG (c_size, |
v = scm_double_cell (SCM_MAKE_VECTOR_TAG (c_size, scm_tc7_wvect), |
88 |
scm_tc7_wvect), |
(scm_t_bits) base, |
89 |
(scm_t_bits) base, |
type, |
90 |
type, |
SCM_UNPACK (SCM_EOL)); |
|
SCM_UNPACK (SCM_EOL)); |
|
91 |
scm_remember_upto_here_1 (fill); |
scm_remember_upto_here_1 (fill); |
92 |
} |
} |
93 |
else |
else |
94 |
{ |
{ |
95 |
v = scm_alloc_double_cell (SCM_MAKE_VECTOR_TAG (0, |
v = scm_double_cell (SCM_MAKE_VECTOR_TAG (0, scm_tc7_wvect), |
96 |
scm_tc7_wvect), |
(scm_t_bits) NULL, |
97 |
(scm_t_bits) NULL, |
type, |
98 |
type, |
SCM_UNPACK (SCM_EOL)); |
|
SCM_UNPACK (SCM_EOL)); |
|
99 |
} |
} |
100 |
|
|
101 |
return v; |
return v; |