Some cleanup in the runtime.

This commit is contained in:
Michael Sullivan 2012-06-18 12:48:47 -07:00
parent 8967a66724
commit b4484d51c1
4 changed files with 9 additions and 8 deletions

View File

@ -271,9 +271,8 @@ static void
debug_tydesc_helper(type_desc *t)
{
rust_task *task = rust_get_current_task();
LOG(task, stdlib, " size %" PRIdPTR ", align %" PRIdPTR
", first_param 0x%" PRIxPTR,
t->size, t->align, t->first_param);
LOG(task, stdlib, " size %" PRIdPTR ", align %" PRIdPTR,
t->size, t->align);
}
extern "C" CDECL void

View File

@ -47,7 +47,6 @@ const uint8_t SHAPE_VEC = 11u;
const uint8_t SHAPE_TAG = 12u;
const uint8_t SHAPE_STRUCT = 17u;
const uint8_t SHAPE_BOX_FN = 18u;
const uint8_t SHAPE_OBJ = 19u;
const uint8_t SHAPE_RES = 20u;
const uint8_t SHAPE_UNIQ = 22u;
const uint8_t SHAPE_UNIQ_FN = 25u;

View File

@ -171,7 +171,7 @@ void task_start_wrapper(spawn_args *a)
if(env) {
// free the environment (which should be a unique closure).
const type_desc *td = env->td;
td->drop_glue(NULL, NULL, td->first_param, box_body(env));
td->drop_glue(NULL, NULL, NULL, box_body(env));
upcall_exchange_free(env);
}

View File

@ -2,8 +2,11 @@
#ifndef RUST_TYPE_H
#define RUST_TYPE_H
#include "rust_globals.h"
#include "rust_refcount.h"
struct rust_opaque_box;
// The type of functions that we spawn, which fall into two categories:
// - the main function: has a NULL environment, but uses the void* arg
// - unique closures of type fn~(): have a non-NULL environment, but
@ -45,21 +48,21 @@ static inline void *box_body(rust_opaque_box *box) {
// N.B. If you want to add a field to tydesc, please use one of the
// unused fields!
struct type_desc {
const type_desc **first_param;
uintptr_t UNUSED_1;
size_t size;
size_t align;
glue_fn *take_glue;
glue_fn *drop_glue;
glue_fn *free_glue;
glue_fn *visit_glue;
uintptr_t UNUSED_1;
uintptr_t UNUSED_2;
uintptr_t UNUSED_3;
uintptr_t UNUSED_4;
uintptr_t UNUSED_5;
const uint8_t *shape;
const rust_shape_tables *shape_tables;
uintptr_t UNUSED_5;
uintptr_t UNUSED_6;
uintptr_t UNUSED_7;
};
extern "C" type_desc *rust_clone_type_desc(type_desc*);