@@ -1051,9 +1051,9 @@ rt_err_t ofw_alias_scan(void)
1051
1051
1052
1052
rt_ofw_foreach_prop (np , prop )
1053
1053
{
1054
- int id = 0 , rate = 1 ;
1054
+ int id = 0 ;
1055
1055
struct alias_info * info ;
1056
- const char * name = prop -> name , * end ;
1056
+ const char * name = prop -> name , * end , * id_start ;
1057
1057
1058
1058
/* Maybe the bootloader will set the name, or other nodes reference the aliases */
1059
1059
if (!rt_strcmp (name , "name" ) || !rt_strcmp (name , "phandle" ))
@@ -1066,19 +1066,20 @@ rt_err_t ofw_alias_scan(void)
1066
1066
continue ;
1067
1067
}
1068
1068
1069
- end = name + rt_strlen (name ) - 1 ;
1069
+ end = name + rt_strlen (name );
1070
1070
1071
- while (* end && !( * end >= '0' && * end <= '9' ) && end > name )
1071
+ while (* ( end - 1 ) && ( * ( end - 1 ) >= '0' && * ( end - 1 ) <= '9' ) && end > name )
1072
1072
{
1073
1073
-- end ;
1074
1074
}
1075
1075
1076
- while (* end && (* end >= '0' && * end <= '9' ))
1076
+ id_start = end ;
1077
+ while (* id_start && (* id_start >= '0' && * id_start <= '9' ))
1077
1078
{
1078
- id += ( * end - '0' ) * rate ;
1079
- rate *= 10 ;
1079
+ id *= 10 ;
1080
+ id += ( * id_start - '0' ) ;
1080
1081
1081
- ++ end ;
1082
+ ++ id_start ;
1082
1083
}
1083
1084
1084
1085
info = rt_malloc (sizeof (* info ));
@@ -1093,7 +1094,7 @@ rt_err_t ofw_alias_scan(void)
1093
1094
1094
1095
info -> id = id ;
1095
1096
info -> tag = name ;
1096
- info -> tag_len = end - name - 1 ;
1097
+ info -> tag_len = end - name ;
1097
1098
info -> np = tmp ;
1098
1099
1099
1100
rt_list_insert_after (& _aliases_nodes , & info -> list );
0 commit comments