diff options
| author | Tom Lee <github@tomlee.co> | 2013-05-24 20:18:20 -0700 |
|---|---|---|
| committer | Tom Lee <github@tomlee.co> | 2013-05-27 17:13:01 -0700 |
| commit | cddd274e4defa86820a7a4218f6f55a440b2f82f (patch) | |
| tree | a0e5087ddbfffba07d71eeff1a2f943d5f62d2cd /src/rt/rust_task.cpp | |
| parent | 67283eaad2f53e19ae963e2b0a04b65826568336 (diff) | |
| download | rust-cddd274e4defa86820a7a4218f6f55a440b2f82f.tar.gz rust-cddd274e4defa86820a7a4218f6f55a440b2f82f.zip | |
Add _RUST_STAGE0 #ifdefs
Diffstat (limited to 'src/rt/rust_task.cpp')
| -rw-r--r-- | src/rt/rust_task.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rt/rust_task.cpp b/src/rt/rust_task.cpp index 28d36a4bf88..b5ecb166175 100644 --- a/src/rt/rust_task.cpp +++ b/src/rt/rust_task.cpp @@ -162,7 +162,11 @@ void task_start_wrapper(spawn_args *a) bool threw_exception = false; try { +#ifdef _RUST_STAGE0 + a->f(NULL, a->envptr, a->argptr); +#else a->f(a->envptr, a->argptr); +#endif } catch (rust_task *ex) { assert(ex == task && "Expected this task to be thrown for unwinding"); threw_exception = true; @@ -183,7 +187,11 @@ void task_start_wrapper(spawn_args *a) if(env) { // free the environment (which should be a unique closure). const type_desc *td = env->td; +#ifdef _RUST_STAGE0 + td->drop_glue(NULL, NULL, NULL, box_body(env)); +#else td->drop_glue(NULL, NULL, box_body(env)); +#endif task->kernel->region()->free(env); } |
