@@ -61,15 +61,13 @@ bool mp_obj_is_package(mp_obj_t module) {
6161}
6262
6363STATIC mp_import_stat_t stat_dir_or_file (vstr_t * path ) {
64- vstr_null_terminate (path );
6564 //printf("stat %s\n", vstr_str(path));
66- mp_import_stat_t stat = mp_import_stat (vstr_str (path ));
65+ mp_import_stat_t stat = mp_import_stat (vstr_null_terminated_str (path ));
6766 if (stat == MP_IMPORT_STAT_DIR ) {
6867 return stat ;
6968 }
7069 vstr_add_str (path , ".py" );
71- vstr_null_terminate (path );
72- stat = mp_import_stat (vstr_str (path ));
70+ stat = mp_import_stat (vstr_null_terminated_str (path ));
7371 if (stat == MP_IMPORT_STAT_FILE ) {
7472 return stat ;
7573 }
@@ -136,9 +134,9 @@ STATIC void do_load_from_lexer(mp_obj_t module_obj, mp_lexer_t *lex, const char
136134
137135STATIC void do_load (mp_obj_t module_obj , vstr_t * file ) {
138136 // create the lexer
139- vstr_null_terminate (file );
140- mp_lexer_t * lex = mp_lexer_new_from_file (vstr_str ( file ) );
141- do_load_from_lexer (module_obj , lex , vstr_str ( file ) );
137+ char * file_str = vstr_null_terminated_str (file );
138+ mp_lexer_t * lex = mp_lexer_new_from_file (file_str );
139+ do_load_from_lexer (module_obj , lex , file_str );
142140}
143141
144142mp_obj_t mp_builtin___import__ (mp_uint_t n_args , const mp_obj_t * args ) {
@@ -329,8 +327,7 @@ mp_obj_t mp_builtin___import__(mp_uint_t n_args, const mp_obj_t *args) {
329327 mp_store_attr (module_obj , MP_QSTR___path__ , mp_obj_new_str (vstr_str (& path ), vstr_len (& path ), false));
330328 vstr_add_char (& path , PATH_SEP_CHAR );
331329 vstr_add_str (& path , "__init__.py" );
332- vstr_null_terminate (& path );
333- if (mp_import_stat (vstr_str (& path )) != MP_IMPORT_STAT_FILE ) {
330+ if (mp_import_stat (vstr_null_terminated_str (& path )) != MP_IMPORT_STAT_FILE ) {
334331 vstr_cut_tail_bytes (& path , sizeof ("/__init__.py" ) - 1 ); // cut off /__init__.py
335332 mp_warning ("%s is imported as namespace package" , vstr_str (& path ));
336333 } else {
0 commit comments