From e880095da34f15d1257da37ec6bc80e245409cfe Mon Sep 17 00:00:00 2001 From: Joe Groff Date: Tue, 1 Nov 2011 18:24:27 -0700 Subject: [PATCH] vm: fix data roots in get-samples primitive --- vm/sampling_profiler.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/vm/sampling_profiler.cpp b/vm/sampling_profiler.cpp index 0f91a14b13..48052888fd 100644 --- a/vm/sampling_profiler.cpp +++ b/vm/sampling_profiler.cpp @@ -116,11 +116,13 @@ void factor_vm::primitive_get_samples() { data_root sample(allot_array(6, false_object),this); - set_array_nth(sample.untagged(),0,from_unsigned_cell(from_iter->counts.sample_count)); - set_array_nth(sample.untagged(),1,from_unsigned_cell(from_iter->counts.gc_sample_count)); - set_array_nth(sample.untagged(),2,from_unsigned_cell(from_iter->counts.foreign_sample_count)); - set_array_nth(sample.untagged(),3,from_unsigned_cell(from_iter->counts.foreign_thread_sample_count)); - set_array_nth(sample.untagged(),4,allot_alien((void*)from_iter->ctx)); + set_array_nth(sample.untagged(),0,tag_fixnum(from_iter->counts.sample_count)); + set_array_nth(sample.untagged(),1,tag_fixnum(from_iter->counts.gc_sample_count)); + set_array_nth(sample.untagged(),2,tag_fixnum(from_iter->counts.foreign_sample_count)); + set_array_nth(sample.untagged(),3,tag_fixnum(from_iter->counts.foreign_thread_sample_count)); + + cell ctx = allot_alien((void*)from_iter->ctx); + set_array_nth(sample.untagged(),4,ctx); cell callstack_size = from_iter->callstack_end - from_iter->callstack_begin; data_root callstack(allot_array(callstack_size,false_object),this);