Re: [PATCH BlueZ 10/11] shared/gatt-client: Fix alignment warnings.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Arman,

On Fri, Nov 07, 2014, Arman Uguray wrote:
> This patch addresses warnings that arise when compiled with
> -W=cast-align.
> ---
>  src/shared/gatt-client.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/src/shared/gatt-client.c b/src/shared/gatt-client.c
> index b4f28b2..2e321b2 100644
> --- a/src/shared/gatt-client.c
> +++ b/src/shared/gatt-client.c
> @@ -1647,7 +1647,7 @@ bool bt_gatt_characteristic_iter_init(struct bt_gatt_characteristic_iter *iter,
>  		return false;
>  
>  	memset(iter, 0, sizeof(*iter));
> -	iter->service = (struct service_list *) service;
> +	iter->service = (void *) service;
>  
>  	return true;
>  }
> @@ -1677,7 +1677,7 @@ bool bt_gatt_include_service_iter_init(struct bt_gatt_incl_service_iter *iter,
>  		return false;
>  
>  	memset(iter, 0, sizeof(*iter));
> -	iter->service = (struct service_list *) service;
> +	iter->service = (void *) service;
>  
>  	return true;
>  }
> @@ -2387,7 +2387,7 @@ bool bt_gatt_client_register_notify(struct bt_gatt_client *client,
>  	struct chrc_data *chrc = NULL;
>  	struct bt_gatt_service_iter iter;
>  	const bt_gatt_service_t *service;
> -	size_t i;
> +	size_t i, offset;
>  
>  	if (!client || !chrc_value_handle || !callback)
>  		return false;
> @@ -2402,7 +2402,8 @@ bool bt_gatt_client_register_notify(struct bt_gatt_client *client,
>  	while (bt_gatt_service_iter_next(&iter, &service)) {
>  		if (chrc_value_handle >= service->start_handle &&
>  				chrc_value_handle <= service->end_handle) {
> -			svc_data = (struct service_list *) service;
> +			offset = offsetof(struct service_list, service);
> +			svc_data = (void *) (service - offset);
>  			break;

Are you sure a (void *) case isn't enough for the last one too? After
all offsetof() should be returning 0 which in the end results in a void *
cast of the service pointer anyway.

Btw, if we at any point find the need to really do this kind of pointer
math I'd suggest adding a container_of() helper macro like the kernel
uses.

Johan
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux