Notify copy glue of dst-initialization and fix _vec.alloc issues in lib and runtime. Closes #109.

This commit is contained in:
Roy Frostig
2010-07-22 17:47:32 -07:00
parent ede42cf931
commit 1730d2e037
7 changed files with 41 additions and 16 deletions

View File

@@ -92,15 +92,15 @@ unsupervise(rust_task *task) {
}
extern "C" CDECL rust_vec*
vec_alloc(rust_task *task, type_desc *t, size_t n_elts)
vec_alloc(rust_task *task, type_desc *t, type_desc *elem_t, size_t n_elts)
{
rust_dom *dom = task->dom;
task->log(rust_log::MEM,
"vec_alloc %" PRIdPTR " elements of size %" PRIdPTR,
n_elts, t->size);
size_t fill = n_elts * t->size;
"vec_alloc %" PRIdPTR " elements of size %" PRIdPTR,
n_elts, elem_t->size);
size_t fill = n_elts * elem_t->size;
size_t alloc = next_power_of_two(sizeof(rust_vec) + fill);
void *mem = dom->malloc(alloc);
void *mem = task->malloc(alloc, t->is_stateful ? t : NULL);
if (!mem) {
task->fail(3);
return NULL;