diff --git a/include/clasp/clbind/apply.h b/include/clasp/clbind/apply.h index 0030e4da58..4aff9b86ec 100644 --- a/include/clasp/clbind/apply.h +++ b/include/clasp/clbind/apply.h @@ -93,16 +93,18 @@ template struct apply_and_ }; // clbind apply_and_return - this needs to handle multiple-values -template -struct apply_and_return, std::unique_ptr, Func, Tuple> { - static gc::return_type go(Func&& fn, Tuple&& tuple) { +template +struct apply_and_return, std::unique_ptr, Func, std::tuple> { + using tuple_type = std::tuple; + static gc::return_type go(Func&& fn, tuple_type&& tuple) { std::unique_ptr retval = clbind::apply(std::move(fn), std::move(tuple)); core::MultipleValues& returnValues = core::lisp_multipleValues(); returnValues.setSize(0); // When returning unique_ptr always adopt it - core::T_sp rv = translate::to_object, translate::adopt_pointer>::convert(std::move(retval)); + core::T_sp rv = translate::to_object, translate::adopt_pointer>::convert(retval); returnValues.emplace_back(rv); - tuple.write_multiple_values(returnValues); + printf("%s:%d Write the multiple values in tuple here\n", __FILE__, __LINE__); + //tuple.write_multiple_values(returnValues); return LCC_RETURN(rv.raw_(), returnValues.getSize()); } };