@@ -952,6 +952,8 @@ void CSharpLanguageModule::ExternalCall(MethodRef method, MemAddr data, const Ji
952
952
hasRefs |= param.IsReference ();
953
953
}
954
954
955
+ func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
956
+
955
957
switch (retType) {
956
958
case ValueType::Void:
957
959
case ValueType::Bool:
@@ -972,90 +974,72 @@ void CSharpLanguageModule::ExternalCall(MethodRef method, MemAddr data, const Ji
972
974
case ValueType::Vector3:
973
975
case ValueType::Vector4:
974
976
case ValueType::Matrix4x4:
975
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
976
977
break ;
977
978
case ValueType::Function: {
978
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
979
979
ret->SetReturn (g_monolm.CreateDelegate (ret->GetReturn <void *>(), *retProp.GetPrototype ()));
980
980
break ;
981
981
}
982
982
case ValueType::String: {
983
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
984
983
ret->SetReturn (g_monolm.CreateString (*reinterpret_cast <plg::string*>(args[0 ])));
985
984
break ;
986
985
}
987
986
case ValueType::ArrayBool: {
988
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
989
987
ret->SetReturn (g_monolm.CreateArrayT <bool >(*reinterpret_cast <std::vector<bool >*>(args[0 ]), mono_get_byte_class ()));
990
988
break ;
991
989
}
992
990
case ValueType::ArrayChar8: {
993
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
994
991
ret->SetReturn (g_monolm.CreateArrayT <char >(*reinterpret_cast <std::vector<char >*>(args[0 ]), mono_get_char_class ()));
995
992
break ;
996
993
}
997
994
case ValueType::ArrayChar16: {
998
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
999
995
ret->SetReturn (g_monolm.CreateArrayT <char16_t >(*reinterpret_cast <std::vector<char16_t >*>(args[0 ]), mono_get_char_class ()));
1000
996
break ;
1001
997
}
1002
998
case ValueType::ArrayInt8: {
1003
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1004
999
ret->SetReturn (g_monolm.CreateArrayT <int8_t >(*reinterpret_cast <std::vector<int8_t >*>(args[0 ]), mono_get_sbyte_class ()));
1005
1000
break ;
1006
1001
}
1007
1002
case ValueType::ArrayInt16: {
1008
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1009
1003
ret->SetReturn (g_monolm.CreateArrayT <int16_t >(*reinterpret_cast <std::vector<int16_t >*>(args[0 ]), mono_get_int16_class ()));
1010
1004
break ;
1011
1005
}
1012
1006
case ValueType::ArrayInt32: {
1013
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1014
1007
ret->SetReturn (g_monolm.CreateArrayT <int32_t >(*reinterpret_cast <std::vector<int32_t >*>(args[0 ]), mono_get_int32_class ()));
1015
1008
break ;
1016
1009
}
1017
1010
case ValueType::ArrayInt64: {
1018
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1019
1011
ret->SetReturn (g_monolm.CreateArrayT <int64_t >(*reinterpret_cast <std::vector<int64_t >*>(args[0 ]), mono_get_int64_class ()));
1020
1012
break ;
1021
1013
}
1022
1014
case ValueType::ArrayUInt8: {
1023
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1024
1015
ret->SetReturn (g_monolm.CreateArrayT <uint8_t >(*reinterpret_cast <std::vector<uint8_t >*>(args[0 ]), mono_get_byte_class ()));
1025
1016
break ;
1026
1017
}
1027
1018
case ValueType::ArrayUInt16: {
1028
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1029
1019
ret->SetReturn (g_monolm.CreateArrayT <uint16_t >(*reinterpret_cast <std::vector<uint16_t >*>(args[0 ]), mono_get_uint16_class ()));
1030
1020
break ;
1031
1021
}
1032
1022
case ValueType::ArrayUInt32: {
1033
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1034
1023
ret->SetReturn (g_monolm.CreateArrayT <uint32_t >(*reinterpret_cast <std::vector<uint32_t >*>(args[0 ]), mono_get_uint32_class ()));
1035
1024
break ;
1036
1025
}
1037
1026
case ValueType::ArrayUInt64: {
1038
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1039
1027
ret->SetReturn (g_monolm.CreateArrayT <uint64_t >(*reinterpret_cast <std::vector<uint64_t >*>(args[0 ]), mono_get_uint64_class ()));
1040
1028
break ;
1041
1029
}
1042
1030
case ValueType::ArrayPointer: {
1043
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1044
1031
ret->SetReturn (g_monolm.CreateArrayT <uintptr_t >(*reinterpret_cast <std::vector<uintptr_t >*>(args[0 ]), mono_get_intptr_class ()));
1045
1032
break ;
1046
1033
}
1047
1034
case ValueType::ArrayFloat: {
1048
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1049
1035
ret->SetReturn (g_monolm.CreateArrayT <float >(*reinterpret_cast <std::vector<float >*>(args[0 ]), mono_get_single_class ()));
1050
1036
break ;
1051
1037
}
1052
1038
case ValueType::ArrayDouble: {
1053
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1054
1039
ret->SetReturn (g_monolm.CreateArrayT <double >(*reinterpret_cast <std::vector<double >*>(args[0 ]), mono_get_double_class ()));
1055
1040
break ;
1056
1041
}
1057
1042
case ValueType::ArrayString: {
1058
- func (parameters.GetDataPtr (), reinterpret_cast <const JitCall::Return*>(ret));
1059
1043
ret->SetReturn (g_monolm.CreateStringArray (*reinterpret_cast <std::vector<plg::string>*>(args[0 ])));
1060
1044
break ;
1061
1045
}
0 commit comments