171 |
scm_long2num (k), k <= SCM_BITVECTOR_MAX_LENGTH); |
scm_long2num (k), k <= SCM_BITVECTOR_MAX_LENGTH); |
172 |
i = sizeof (long) * ((k + SCM_LONG_BIT - 1) / SCM_LONG_BIT); |
i = sizeof (long) * ((k + SCM_LONG_BIT - 1) / SCM_LONG_BIT); |
173 |
v = scm_alloc_cell (SCM_MAKE_BITVECTOR_TAG (k), |
v = scm_alloc_cell (SCM_MAKE_BITVECTOR_TAG (k), |
174 |
(scm_t_bits) scm_must_malloc (i, "vector")); |
(scm_t_bits) scm_gc_malloc (i, "vector")); |
175 |
} |
} |
176 |
else |
else |
177 |
v = scm_alloc_cell (SCM_MAKE_BITVECTOR_TAG (0), 0); |
v = scm_alloc_cell (SCM_MAKE_BITVECTOR_TAG (0), 0); |
240 |
SCM_ASSERT_RANGE (1, scm_long2num (k), k <= SCM_UVECTOR_MAX_LENGTH); |
SCM_ASSERT_RANGE (1, scm_long2num (k), k <= SCM_UVECTOR_MAX_LENGTH); |
241 |
|
|
242 |
return scm_alloc_cell (SCM_MAKE_UVECTOR_TAG (k, type), |
return scm_alloc_cell (SCM_MAKE_UVECTOR_TAG (k, type), |
243 |
(scm_t_bits) scm_must_malloc (i ? i : 1, "vector")); |
(scm_t_bits) scm_gc_malloc (i, "vector")); |
244 |
} |
} |
245 |
#undef FUNC_NAME |
#undef FUNC_NAME |
246 |
|
|
520 |
SCM ra; |
SCM ra; |
521 |
SCM_DEFER_INTS; |
SCM_DEFER_INTS; |
522 |
SCM_NEWSMOB(ra, ((scm_t_bits) ndim << 17) + scm_tc16_array, |
SCM_NEWSMOB(ra, ((scm_t_bits) ndim << 17) + scm_tc16_array, |
523 |
scm_must_malloc ((sizeof (scm_t_array) + |
scm_gc_malloc ((sizeof (scm_t_array) + |
524 |
ndim * sizeof (scm_t_array_dim)), |
ndim * sizeof (scm_t_array_dim)), |
525 |
"array")); |
"array")); |
526 |
SCM_ARRAY_V (ra) = scm_nullvect; |
SCM_ARRAY_V (ra) = scm_nullvect; |
527 |
SCM_ALLOW_INTS; |
SCM_ALLOW_INTS; |
528 |
return ra; |
return ra; |
2589 |
static size_t |
static size_t |
2590 |
array_free (SCM ptr) |
array_free (SCM ptr) |
2591 |
{ |
{ |
2592 |
scm_must_free (SCM_ARRAY_MEM (ptr)); |
scm_gc_free (SCM_ARRAY_MEM (ptr), |
2593 |
return sizeof (scm_t_array) + |
(sizeof (scm_t_array) |
2594 |
SCM_ARRAY_NDIM (ptr) * sizeof (scm_t_array_dim); |
+ SCM_ARRAY_NDIM (ptr) * sizeof (scm_t_array_dim)), |
2595 |
|
"array"); |
2596 |
|
return 0; |
2597 |
} |
} |
2598 |
|
|
2599 |
void |
void |