| 585 | */ |
| 586 | template <typename... Args> |
| 587 | TVM_FFI_INLINE static Any InvokeExternC(void* handle, TVMFFISafeCallType safe_call, |
| 588 | Args&&... args) { |
| 589 | const int kNumArgs = sizeof...(Args); |
| 590 | const int kArraySize = kNumArgs > 0 ? kNumArgs : 1; |
| 591 | AnyView args_pack[kArraySize]; |
| 592 | PackedArgs::Fill(args_pack, std::forward<Args>(args)...); |
| 593 | Any result; |
| 594 | TVM_FFI_CHECK_SAFE_CALL(safe_call(handle, reinterpret_cast<const TVMFFIAny*>(args_pack), |
| 595 | kNumArgs, reinterpret_cast<TVMFFIAny*>(&result))); |
| 596 | return result; |
| 597 | } |
| 598 | /*! |
| 599 | * \brief Call function by directly passing in unpacked arguments. |
| 600 | * |
nothing calls this directly
no outgoing calls
no test coverage detected