diff --git a/build-windows/pEpJSONServerAdapter/pEpJSONServerAdapterLibrary.vcxproj b/build-windows/pEpJSONServerAdapter/pEpJSONServerAdapterLibrary.vcxproj index e734c01..ced2ff0 100644 --- a/build-windows/pEpJSONServerAdapter/pEpJSONServerAdapterLibrary.vcxproj +++ b/build-windows/pEpJSONServerAdapter/pEpJSONServerAdapterLibrary.vcxproj @@ -111,7 +111,6 @@ - diff --git a/build-windows/pEpJSONServerAdapter/pEpJSONServerAdapterLibrary.vcxproj.filters b/build-windows/pEpJSONServerAdapter/pEpJSONServerAdapterLibrary.vcxproj.filters index 0d32a65..10e967d 100644 --- a/build-windows/pEpJSONServerAdapter/pEpJSONServerAdapterLibrary.vcxproj.filters +++ b/build-windows/pEpJSONServerAdapter/pEpJSONServerAdapterLibrary.vcxproj.filters @@ -105,9 +105,6 @@ Header Files - - Header Files - Header Files diff --git a/server/function_map.hh b/server/function_map.hh index f24e3a1..23985d3 100644 --- a/server/function_map.hh +++ b/server/function_map.hh @@ -116,16 +116,32 @@ public: { // extract the U'th element of the parameter list const Element element(parameters[U], ctx, U); - + const js::Value ret = NextHelper::call(fn, ctx, out_parameters, parameters, a2..., element ); if(Element::is_output) { js::Value out = element.to_json(); -// std::cerr << "|$ Out #" << U << " : " << js::write(out) << "\n"; - out_parameters.push_back( std::move(out) ); - }else{ -// std::cerr << "|$ Param #" << U << " is not for output.\n"; + // std::cerr << "|$ Out #" << U << " : " << js::write(out) << "\n"; + out_parameters.push_back(std::move(out)); } + else { + // std::cerr << "|$ Param #" << U << " is not for output.\n"; + } +#ifdef _MSC_BUILD + if (ret.type() == js::array_type) { + try { + const js::Array ret_ = ret.get_array()[0].get_array(); +#ifndef NDEBUG + std::string _ret_ = js::write(ret_); +#endif + return ret_; + } + catch (std::runtime_error&) { + return ret; + } + } + else +#endif return ret; } }; @@ -187,7 +203,7 @@ public: out_params.reserve( Helper::nr_of_output_params ); js::Value ret = Helper::call(fn, context, out_params, *p_params); - + std::string _ret = js::value_type_to_string(ret.type()); js::Object rs; rs.emplace_back("outParams", std::move(out_params)); rs.emplace_back("return", std::move(ret));