diff options
| author | Niko Matsakis <niko@alum.mit.edu> | 2012-01-12 09:28:29 -0800 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2012-01-12 13:47:38 -0800 |
| commit | 263f4c58a0c9409f257d45ae03d4b19700ef232b (patch) | |
| tree | af164d0b5f13701880e15c6c6fb6701c064eb006 /src/rt/rust_upcall.cpp | |
| parent | e55aa6e5ef60369710d8b2e6f512b2ef84a8c548 (diff) | |
| download | rust-263f4c58a0c9409f257d45ae03d4b19700ef232b.tar.gz rust-263f4c58a0c9409f257d45ae03d4b19700ef232b.zip | |
add tydescs into shape, rewrite walk_fn_contents()
Diffstat (limited to 'src/rt/rust_upcall.cpp')
| -rw-r--r-- | src/rt/rust_upcall.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/rt/rust_upcall.cpp b/src/rt/rust_upcall.cpp index 12ef28065bd..65299a7d244 100644 --- a/src/rt/rust_upcall.cpp +++ b/src/rt/rust_upcall.cpp @@ -283,12 +283,14 @@ void upcall_s_free_shared_type_desc(type_desc *td) rust_task *task = rust_scheduler::get_task(); LOG_UPCALL_ENTRY(task); - // Recursively free any referenced descriptors: - for (unsigned i = 0; i < td->n_params; i++) { - upcall_s_free_shared_type_desc((type_desc*) td->first_param[i]); - } + if (td) { + // Recursively free any referenced descriptors: + for (unsigned i = 0; i < td->n_params; i++) { + upcall_s_free_shared_type_desc((type_desc*) td->first_param[i]); + } - task->kernel->free(td); + task->kernel->free(td); + } } extern "C" CDECL void |
