@@ -393,42 +393,43 @@ graph_t create_graph(context_t context, const char* model_format, const char* fi
393
393
{
394
394
int ret = 0 ;
395
395
struct serializer * loader = find_serializer_via_name (model_format );
396
- if (loader == NULL )
397
- {
398
- TLOG_ERR ("Tengine: No matched serializer(name: %s) found.\n" , model_format );
399
- return create_graph_error ;
400
- }
401
-
402
396
va_list ap ;
403
- va_start (ap , file_name );
404
-
405
- const char * p = strchr (model_format , ':' );
406
-
407
- // load from file or memory
408
- if (NULL == p )
409
- {
410
- ret = loader -> load_model (loader , ir_graph , file_name , ap );
411
- }
412
- else
397
+ if (loader == NULL )
413
398
{
414
- if (p [1 ] != 'm' )
399
+ // load from memory
400
+ const char * p = strchr (model_format , ':' );
401
+ if ((NULL == p ) || (p [1 ] != 'm' ))
415
402
{
416
403
TLOG_ERR ("Tengine: Invalid postfix(%s) for model format: should 'm' only.\n" , p );
417
404
return create_graph_error (ir_graph );
418
405
}
419
406
407
+ loader = find_serializer_via_name ("tengine" );
408
+
420
409
if (NULL == loader -> load_mem )
421
410
{
422
411
TLOG_ERR ("Tengine: Serializer(%s) does not support loading from memory.\n" , loader -> get_name (loader ));
423
412
return create_graph_error (ir_graph );
424
413
}
425
414
415
+ va_start (ap , file_name );
416
+
426
417
int size = va_arg (ap , int );
427
418
428
419
ret = loader -> load_mem (loader , ir_graph , (void * )file_name , size , ap );
420
+
421
+ va_end (ap );
429
422
}
423
+ else
424
+ {
425
+ // load from file
426
+
427
+ va_start (ap , file_name );
430
428
431
- va_end (ap );
429
+ ret = loader -> load_model (loader , ir_graph , file_name , ap );
430
+
431
+ va_end (ap );
432
+ }
432
433
433
434
if (0 != ret )
434
435
{
0 commit comments