tool/btstack_event_generator: avoid cast of composite expression to wider/different type

This commit is contained in:
Matthias Ringwald 2024-04-17 16:36:14 +02:00
parent 72d2978c39
commit b5d6941850
2 changed files with 10 additions and 5 deletions

View File

@ -13794,7 +13794,8 @@ static inline const uint8_t * gattservice_subevent_bass_client_notify_receive_st
* @note: btstack_type 3
*/
static inline uint32_t gattservice_subevent_bass_client_notify_receive_state_subgroup_get_language_code(const uint8_t * event){
return little_endian_read_24(event, (int)(16u + event[15]));
uint16_t offset = 16u + event[15];
return little_endian_read_24(event, (int)(int16_t) offset);
}
/**
* @brief Get field ccids_num from event GATTSERVICE_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_SUBGROUP
@ -13848,7 +13849,8 @@ static inline const uint8_t * gattservice_subevent_bass_client_notify_receive_st
* @note: btstack_type 2
*/
static inline uint16_t gattservice_subevent_bass_client_notify_receive_state_subgroup_get_extended_metadata_type(const uint8_t * event){
return little_endian_read_16(event, (int)(16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u + 1u + event[16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u]));
uint16_t offset = 16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u + 1u + event[16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u];
return little_endian_read_16(event, (int)(int16_t) offset);
}
/**
* @brief Get field extended_metadata_value_length from event GATTSERVICE_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_SUBGROUP
@ -13875,7 +13877,8 @@ static inline const uint8_t * gattservice_subevent_bass_client_notify_receive_st
* @note: btstack_type 2
*/
static inline uint16_t gattservice_subevent_bass_client_notify_receive_state_subgroup_get_vendor_specific_metadata_type(const uint8_t * event){
return little_endian_read_16(event, (int)(16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u + 1u + event[16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u] + 2u + 1u + event[16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u + 1u + event[16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u] + 2u]));
uint16_t offset = 16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u + 1u + event[16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u] + 2u + 1u + event[16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u + 1u + event[16u + event[15] + 3u + 1u + event[16u + event[15] + 3u] + 1u] + 2u];
return little_endian_read_16(event, (int)(int16_t) offset);
}
/**
* @brief Get field vendor_specific_metadata_value_length from event GATTSERVICE_SUBEVENT_BASS_CLIENT_NOTIFY_RECEIVE_STATE_SUBGROUP

View File

@ -271,9 +271,11 @@ def create_getter(event_name, field_name, field_type, offset, offset_is_number,
template = template_for_type(field_type)
read_code = param_read[field_type]
requires_signed = 'little_endian' in read_code or 'gatt_client_deserialize' in read_code
code = ''
if requires_signed and not offset_is_number:
offset = '(int)(%s)' % offset
code = read_code.format(offset=offset, result_name=result_name)
code += 'uint16_t offset = %s;\n ' % offset
offset = '(int)(int16_t) offset'
code += read_code.format(offset=offset, result_name=result_name)
return template.format(description=description, fn_name=fn_name, result_name=result_name, result_type=result_type, code=code, format=field_type)
def is_le_event(event_group):