@@ -35,12 +35,15 @@ void region_begin(std::string_view function_name, std::string module, std::strin
3535
3636 if (region == uninitialised_region_handle)
3737 {
38- const auto region_name = make_region_name (std::move (module ), function_name);
38+ auto region_name = make_region_name (std::move (module ), function_name);
3939 SCOREP_User_RegionInit (®ion.value , NULL , NULL , region_name.c_str (),
4040 SCOREP_USER_REGION_TYPE_FUNCTION, file_name.c_str (), line_number);
4141
42- SCOREP_User_RegionSetGroup (region.value ,
43- std::string (region_name, 0 , region_name.find (' .' )).c_str ());
42+ if (const auto pos = region_name.find (' :' ); pos != std::string::npos)
43+ {
44+ region_name.resize (pos);
45+ SCOREP_User_RegionSetGroup (region.value , region_name.c_str ());
46+ }
4447 }
4548 SCOREP_User_RegionEnter (region.value );
4649}
@@ -50,16 +53,19 @@ void region_begin(std::string_view function_name, std::string module, std::strin
5053void region_begin (std::string_view function_name, std::string module , std::string file_name,
5154 const std::uint64_t line_number)
5255{
53- const auto region_name = make_region_name (std::move (module ), function_name);
56+ auto region_name = make_region_name (std::move (module ), function_name);
5457 region_handle& region = user_regions[region_name];
5558
5659 if (region == uninitialised_region_handle)
5760 {
5861 SCOREP_User_RegionInit (®ion.value , NULL , NULL , region_name.c_str (),
5962 SCOREP_USER_REGION_TYPE_FUNCTION, file_name.c_str (), line_number);
6063
61- SCOREP_User_RegionSetGroup (region.value ,
62- std::string (region_name, 0 , region_name.find (' .' )).c_str ());
64+ if (const auto pos = region_name.find (' :' ); pos != std::string::npos)
65+ {
66+ region_name.resize (pos);
67+ SCOREP_User_RegionSetGroup (region.value , region_name.c_str ());
68+ }
6369 }
6470 SCOREP_User_RegionEnter (region.value );
6571}
0 commit comments