)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"1ad046165fd00672667e3a4e087cc03ea98c4818","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"23b73148_60543952","updated":"2026-03-07 11:02:42.000000000","message":"Please also fix the commit message, it\u0027s about target detection not board, right?","commit_id":"cb83fb1ab567ca820cf77032d5b08a0ac4ce8d35"}],"src/flash/nor/efm32.c":[{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"bb44689cf7555a34cb9f49f9918b89cbe526e8f7","unresolved":true,"context_lines":[{"line_number":1076,"context_line":"\t\t\t\t       efm32_mcu_info-\u003epart_info);"},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"\t\tif (dev_type \u003e strlen(types)) {"},{"line_number":1079,"context_line":"\t\t\tsnprintf(buf, len, \"Unknown MCU family %d\", dev_type);"},{"line_number":1080,"context_line":"\t\t\treturn buf;"},{"line_number":1081,"context_line":"\t\t}"},{"line_number":1082,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"85b380f9_c3ed971b","line":1079,"range":{"start_line":1079,"start_character":43,"end_line":1079,"end_character":44},"updated":"2026-02-10 21:13:43.000000000","message":"Probably better to use `%u` format specifier on unsigned int","commit_id":"1278465e0f5e617d0914862dd8a650163e5dd2f3"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"0e8d072430aaef0977d2280185384ecd7b6daed6","unresolved":false,"context_lines":[{"line_number":1076,"context_line":"\t\t\t\t       efm32_mcu_info-\u003epart_info);"},{"line_number":1077,"context_line":""},{"line_number":1078,"context_line":"\t\tif (dev_type \u003e strlen(types)) {"},{"line_number":1079,"context_line":"\t\t\tsnprintf(buf, len, \"Unknown MCU family %d\", dev_type);"},{"line_number":1080,"context_line":"\t\t\treturn buf;"},{"line_number":1081,"context_line":"\t\t}"},{"line_number":1082,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":5,"id":"3bb3fea8_0b4151ac","line":1079,"range":{"start_line":1079,"start_character":43,"end_line":1079,"end_character":44},"in_reply_to":"85b380f9_c3ed971b","updated":"2026-02-11 19:41:03.000000000","message":"Done","commit_id":"1278465e0f5e617d0914862dd8a650163e5dd2f3"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"bb44689cf7555a34cb9f49f9918b89cbe526e8f7","unresolved":true,"context_lines":[{"line_number":1083,"context_line":"\t\tdev_num_letter \u003d \u0027A\u0027 + (dev_num / 1000);"},{"line_number":1084,"context_line":"\t\tdev_num_digits \u003d dev_num % 1000;"},{"line_number":1085,"context_line":""},{"line_number":1086,"context_line":"\t\tsnprintf(buf, len, \"%s%cG%d %c%03d, rev %d\","},{"line_number":1087,"context_line":"\t\t\ttypes[dev_type] \u003d\u003d \u0027P\u0027 ? \"EFM32\" : \"EFR32\","},{"line_number":1088,"context_line":"\t\t\ttypes[dev_type],"},{"line_number":1089,"context_line":"\t\t\tdev_family,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"810fac8a_ca37930c","line":1086,"range":{"start_line":1086,"start_character":42,"end_line":1086,"end_character":44},"updated":"2026-02-10 21:13:43.000000000","message":"part_rev is uint8_t, so please use PRIu8 format specifier.\nhttps://openocd.org/doc/doxygen/html/stylec.html#styletypes","commit_id":"1278465e0f5e617d0914862dd8a650163e5dd2f3"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"0e8d072430aaef0977d2280185384ecd7b6daed6","unresolved":false,"context_lines":[{"line_number":1083,"context_line":"\t\tdev_num_letter \u003d \u0027A\u0027 + (dev_num / 1000);"},{"line_number":1084,"context_line":"\t\tdev_num_digits \u003d dev_num % 1000;"},{"line_number":1085,"context_line":""},{"line_number":1086,"context_line":"\t\tsnprintf(buf, len, \"%s%cG%d %c%03d, rev %d\","},{"line_number":1087,"context_line":"\t\t\ttypes[dev_type] \u003d\u003d \u0027P\u0027 ? \"EFM32\" : \"EFR32\","},{"line_number":1088,"context_line":"\t\t\ttypes[dev_type],"},{"line_number":1089,"context_line":"\t\t\tdev_family,"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"331c080e_eeca0ea7","line":1086,"range":{"start_line":1086,"start_character":42,"end_line":1086,"end_character":44},"in_reply_to":"810fac8a_ca37930c","updated":"2026-02-11 19:41:03.000000000","message":"Done","commit_id":"1278465e0f5e617d0914862dd8a650163e5dd2f3"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"bb44689cf7555a34cb9f49f9918b89cbe526e8f7","unresolved":true,"context_lines":[{"line_number":1091,"context_line":"\t\t\tdev_num_digits,"},{"line_number":1092,"context_line":"\t\t\tefm32_mcu_info-\u003epart_rev);"},{"line_number":1093,"context_line":"\t} else {"},{"line_number":1094,"context_line":"\t\tsnprintf(buf, len, \"%s Gecko, rev %d\","},{"line_number":1095,"context_line":"\t\t\tefm32_mcu_info-\u003efamily_data-\u003ename,"},{"line_number":1096,"context_line":"\t\t\tefm32_mcu_info-\u003epart_rev);"},{"line_number":1097,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"c4ee5c12_83b3ded9","line":1094,"range":{"start_line":1094,"start_character":36,"end_line":1094,"end_character":38},"updated":"2026-02-10 21:13:43.000000000","message":"As above","commit_id":"1278465e0f5e617d0914862dd8a650163e5dd2f3"},{"author":{"_account_id":1000687,"name":"Tomas Vanek","display_name":"Tomas Vanek","email":"vanekt@fbl.cz","username":"vanekt"},"change_message_id":"0e8d072430aaef0977d2280185384ecd7b6daed6","unresolved":false,"context_lines":[{"line_number":1091,"context_line":"\t\t\tdev_num_digits,"},{"line_number":1092,"context_line":"\t\t\tefm32_mcu_info-\u003epart_rev);"},{"line_number":1093,"context_line":"\t} else {"},{"line_number":1094,"context_line":"\t\tsnprintf(buf, len, \"%s Gecko, rev %d\","},{"line_number":1095,"context_line":"\t\t\tefm32_mcu_info-\u003efamily_data-\u003ename,"},{"line_number":1096,"context_line":"\t\t\tefm32_mcu_info-\u003epart_rev);"},{"line_number":1097,"context_line":"\t}"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"0e36cb8a_8d7630e9","line":1094,"range":{"start_line":1094,"start_character":36,"end_line":1094,"end_character":38},"in_reply_to":"c4ee5c12_83b3ded9","updated":"2026-02-11 19:41:03.000000000","message":"Done","commit_id":"1278465e0f5e617d0914862dd8a650163e5dd2f3"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"1ad046165fd00672667e3a4e087cc03ea98c4818","unresolved":true,"context_lines":[{"line_number":1060,"context_line":"}"},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"static char *efm32_get_str_identifier(struct efm32_info *efm32_mcu_info,"},{"line_number":1063,"context_line":"\t\t\t\t      char *buf, int len)"},{"line_number":1064,"context_line":"{"},{"line_number":1065,"context_line":"\tconst char *types \u003d \"FMBZxP\";"},{"line_number":1066,"context_line":"\tunsigned int dev_num, dev_family, dev_type;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"b93fecb0_c1d4e82f","line":1063,"updated":"2026-03-07 11:02:42.000000000","message":"Don\u0027t use `int` here, it\u0027s a buffer length and can never be negative! Use `size_t` as expected by `snprintf()`.","commit_id":"cb83fb1ab567ca820cf77032d5b08a0ac4ce8d35"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"afd81fabfbdf24baf6c2d28f9dabd07871cecb15","unresolved":false,"context_lines":[{"line_number":1060,"context_line":"}"},{"line_number":1061,"context_line":""},{"line_number":1062,"context_line":"static char *efm32_get_str_identifier(struct efm32_info *efm32_mcu_info,"},{"line_number":1063,"context_line":"\t\t\t\t      char *buf, int len)"},{"line_number":1064,"context_line":"{"},{"line_number":1065,"context_line":"\tconst char *types \u003d \"FMBZxP\";"},{"line_number":1066,"context_line":"\tunsigned int dev_num, dev_family, dev_type;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"9a5f70da_51bb3491","line":1063,"in_reply_to":"b93fecb0_c1d4e82f","updated":"2026-03-08 10:14:47.000000000","message":"Done","commit_id":"cb83fb1ab567ca820cf77032d5b08a0ac4ce8d35"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"1ad046165fd00672667e3a4e087cc03ea98c4818","unresolved":true,"context_lines":[{"line_number":1062,"context_line":"static char *efm32_get_str_identifier(struct efm32_info *efm32_mcu_info,"},{"line_number":1063,"context_line":"\t\t\t\t      char *buf, int len)"},{"line_number":1064,"context_line":"{"},{"line_number":1065,"context_line":"\tconst char *types \u003d \"FMBZxP\";"},{"line_number":1066,"context_line":"\tunsigned int dev_num, dev_family, dev_type;"},{"line_number":1067,"context_line":"\tunsigned int dev_num_digits;"},{"line_number":1068,"context_line":"\tchar dev_num_letter;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"064d3286_90ee152f","line":1065,"updated":"2026-03-07 11:02:42.000000000","message":"Avoid variable declaration at the beginning of a function but rather when a variable is used. You could also invert the if-logic and use only a single if-block.","commit_id":"cb83fb1ab567ca820cf77032d5b08a0ac4ce8d35"},{"author":{"_account_id":1002493,"name":"Jérôme Pouiller","email":"jerome.pouiller@silabs.com","username":"jerome-pouiller"},"change_message_id":"afd81fabfbdf24baf6c2d28f9dabd07871cecb15","unresolved":false,"context_lines":[{"line_number":1062,"context_line":"static char *efm32_get_str_identifier(struct efm32_info *efm32_mcu_info,"},{"line_number":1063,"context_line":"\t\t\t\t      char *buf, int len)"},{"line_number":1064,"context_line":"{"},{"line_number":1065,"context_line":"\tconst char *types \u003d \"FMBZxP\";"},{"line_number":1066,"context_line":"\tunsigned int dev_num, dev_family, dev_type;"},{"line_number":1067,"context_line":"\tunsigned int dev_num_digits;"},{"line_number":1068,"context_line":"\tchar dev_num_letter;"}],"source_content_type":"text/x-csrc","patch_set":7,"id":"b63dea2d_04ff5844","line":1065,"in_reply_to":"064d3286_90ee152f","updated":"2026-03-08 10:14:47.000000000","message":"Done","commit_id":"cb83fb1ab567ca820cf77032d5b08a0ac4ce8d35"}]}
