@@ -1304,7 +1304,7 @@ fn collect_in_cluster(
13041304 let mut rspecs = Vec :: new ( ) ;
13051305 let single = !cname. contains ( "%s" ) ;
13061306
1307- for rspec in cmod. keys ( ) {
1307+ for ( rspec, rmod ) in cmod {
13081308 let rspec = rspec. str ( ) ?;
13091309 if rspec == "description" {
13101310 continue ;
@@ -1396,7 +1396,7 @@ fn collect_in_cluster(
13961396 ) ) ;
13971397 }
13981398 }
1399- rdict. insert ( rspec. to_string ( ) , registers) ;
1399+ rdict. insert ( rspec. to_string ( ) , ( rmod , registers) ) ;
14001400 }
14011401 if rdict. is_empty ( ) {
14021402 return Err ( anyhow ! (
@@ -1405,6 +1405,7 @@ fn collect_in_cluster(
14051405 }
14061406 let address_offset = rdict
14071407 . values ( )
1408+ . map ( |v| & v. 1 )
14081409 . min_by_key ( |rs| rs[ 0 ] . address_offset )
14091410 . unwrap ( ) [ 0 ]
14101411 . address_offset ;
@@ -1420,9 +1421,9 @@ fn collect_in_cluster(
14201421 let mut config = config. clone ( ) ;
14211422 config. update_fields = true ;
14221423 let cluster = if single {
1423- for ( rspec , mut registers) in rdict. into_iter ( ) {
1424+ for ( _ , ( rmod , mut registers) ) in rdict. into_iter ( ) {
14241425 let mut reg = registers. swap_remove ( 0 ) . single ( ) ;
1425- let rmod = cmod . get_hash ( rspec . as_str ( ) ) ? . unwrap ( ) ;
1426+ let rmod = rmod . hash ( ) ? ;
14261427 reg. process ( rmod, path, & config)
14271428 . with_context ( || format ! ( "Processing register `{}`" , reg. name) ) ?;
14281429 if let Some ( name) = rmod. get_str ( "name" ) ? {
@@ -1434,9 +1435,9 @@ fn collect_in_cluster(
14341435
14351436 cinfo. children ( children) . build ( VAL_LVL ) ?. single ( )
14361437 } else {
1437- for ( rspec, mut registers) in rdict. into_iter ( ) {
1438+ for ( rspec, ( rmod , mut registers) ) in rdict. into_iter ( ) {
14381439 let mut reg = registers. swap_remove ( 0 ) . single ( ) ;
1439- let rmod = cmod . get_hash ( rspec . as_str ( ) ) ? . unwrap ( ) ;
1440+ let rmod = rmod . hash ( ) ? ;
14401441 reg. process ( rmod, path, & config)
14411442 . with_context ( || format ! ( "Processing register `{}`" , reg. name) ) ?;
14421443 reg. name = if let Some ( name) = rmod. get_str ( "name" ) ? {
0 commit comments