@@ -210,7 +210,6 @@ runtime::Error Module::load_method(
210
210
method_holder.memory_manager .get (),
211
211
event_tracer ? event_tracer : this ->event_tracer (),
212
212
data_map_.get ()));
213
- method_holder.inputs .resize (method_holder.method ->inputs_size ());
214
213
methods_.emplace (method_name, std::move (method_holder));
215
214
}
216
215
return runtime::Error::Ok;
@@ -233,28 +232,10 @@ runtime::Result<std::vector<runtime::EValue>> Module::execute(
233
232
const std::vector<runtime::EValue>& input_values) {
234
233
ET_CHECK_OK_OR_RETURN_ERROR (load_method (method_name));
235
234
auto & method = methods_.at (method_name).method ;
236
- auto & inputs = methods_.at (method_name).inputs ;
237
-
238
- ET_CHECK_OR_RETURN_ERROR (
239
- input_values.size () <= inputs.size (),
240
- InvalidArgument,
241
- " input size: %zu does not match method input size: %zu" ,
242
- input_values.size (),
243
- inputs.size ());
244
- for (size_t i = 0 ; i < input_values.size (); ++i) {
245
- if (!input_values[i].isNone ()) {
246
- inputs[i] = input_values[i];
247
- }
235
+ for (auto index = 0 ; index < input_values.size (); ++index) {
236
+ ET_CHECK_OK_OR_RETURN_ERROR (method->set_input (input_values[index], index));
248
237
}
249
- for (size_t i = 0 ; i < inputs.size (); ++i) {
250
- ET_CHECK_OR_RETURN_ERROR (
251
- !inputs[i].isNone (), InvalidArgument, " input %zu is none" , i);
252
- }
253
- ET_CHECK_OK_OR_RETURN_ERROR (
254
- method->set_inputs (executorch::aten::ArrayRef<runtime::EValue>(
255
- inputs.data (), inputs.size ())));
256
238
ET_CHECK_OK_OR_RETURN_ERROR (method->execute ());
257
-
258
239
const auto outputs_size = method->outputs_size ();
259
240
std::vector<runtime::EValue> outputs (outputs_size);
260
241
ET_CHECK_OK_OR_RETURN_ERROR (
@@ -268,23 +249,17 @@ runtime::Error Module::set_input(
268
249
const runtime::EValue& input_value,
269
250
size_t input_index) {
270
251
ET_CHECK_OK_OR_RETURN_ERROR (load_method (method_name));
271
- methods_.at (method_name).inputs . at (input_index) = input_value ;
272
- return runtime::Error::Ok ;
252
+ auto & method = methods_.at (method_name).method ;
253
+ return method-> set_input (input_value, input_index) ;
273
254
}
274
255
275
256
runtime::Error Module::set_inputs (
276
257
const std::string& method_name,
277
258
const std::vector<runtime::EValue>& input_values) {
278
259
ET_CHECK_OK_OR_RETURN_ERROR (load_method (method_name));
279
- auto & inputs = methods_.at (method_name).inputs ;
280
- ET_CHECK_OR_RETURN_ERROR (
281
- inputs.size () == input_values.size (),
282
- InvalidArgument,
283
- " input size: %zu does not match method input size: %zu" ,
284
- input_values.size (),
285
- inputs.size ());
286
- inputs = input_values;
287
- return runtime::Error::Ok;
260
+ auto & method = methods_.at (method_name).method ;
261
+ return method->set_inputs (executorch::aten::ArrayRef<runtime::EValue>(
262
+ input_values.data (), input_values.size ()));
288
263
}
289
264
290
265
runtime::Error Module::set_output (
0 commit comments