[Mesa-dev] [PATCH] blob: Use intptr_t instead of ssize_t

Jose Fonseca jfonseca at vmware.com
Fri Oct 13 17:45:14 UTC 2017


On 13/10/17 18:44, Jason Ekstrand wrote:
> ssize_t is a GNU extension and is not available on Windows or MacOS.
> Instead, we use intptr_t which should be effectively equivalent and is
> part of the C standard.  This should fix the Windows and Mac OS builds.
> 
> Cc: Jose Fonseca <jfonseca at vmware.com>
> Cc: Vinson Lee <vlee at freedesktop.org>
> Fixes: 3af1c829891a4530682bce113fdd512d4f2de3c6
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=103253
> ---
>   src/compiler/blob.c                   | 8 ++++----
>   src/compiler/blob.h                   | 6 +++---
>   src/intel/vulkan/anv_pipeline_cache.c | 2 +-
>   3 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/src/compiler/blob.c b/src/compiler/blob.c
> index f0fa85e..8dd254f 100644
> --- a/src/compiler/blob.c
> +++ b/src/compiler/blob.c
> @@ -158,10 +158,10 @@ blob_write_bytes(struct blob *blob, const void *bytes, size_t to_write)
>      return true;
>   }
>   
> -ssize_t
> +intptr_t
>   blob_reserve_bytes(struct blob *blob, size_t to_write)
>   {
> -   ssize_t ret;
> +   intptr_t ret;
>   
>      if (! grow_to_fit (blob, to_write))
>         return -1;
> @@ -172,14 +172,14 @@ blob_reserve_bytes(struct blob *blob, size_t to_write)
>      return ret;
>   }
>   
> -ssize_t
> +intptr_t
>   blob_reserve_uint32(struct blob *blob)
>   {
>      align_blob(blob, sizeof(uint32_t));
>      return blob_reserve_bytes(blob, sizeof(uint32_t));
>   }
>   
> -ssize_t
> +intptr_t
>   blob_reserve_intptr(struct blob *blob)
>   {
>      align_blob(blob, sizeof(intptr_t));
> diff --git a/src/compiler/blob.h b/src/compiler/blob.h
> index f0f28ec..2b975d4 100644
> --- a/src/compiler/blob.h
> +++ b/src/compiler/blob.h
> @@ -135,7 +135,7 @@ blob_write_bytes(struct blob *blob, const void *bytes, size_t to_write);
>    * \return An offset to space allocated within \blob to which \to_write bytes
>    * can be written, (or -1 in case of any allocation error).
>    */
> -ssize_t
> +intptr_t
>   blob_reserve_bytes(struct blob *blob, size_t to_write);
>   
>   /**
> @@ -143,7 +143,7 @@ blob_reserve_bytes(struct blob *blob, size_t to_write);
>    * space. Note that this must be used if later reading with \sa
>    * blob_read_uint32, since it aligns the offset correctly.
>    */
> -ssize_t
> +intptr_t
>   blob_reserve_uint32(struct blob *blob);
>   
>   /**
> @@ -151,7 +151,7 @@ blob_reserve_uint32(struct blob *blob);
>    * space. Note that this must be used if later reading with \sa
>    * blob_read_intptr, since it aligns the offset correctly.
>    */
> -ssize_t
> +intptr_t
>   blob_reserve_intptr(struct blob *blob);
>   
>   /**
> diff --git a/src/intel/vulkan/anv_pipeline_cache.c b/src/intel/vulkan/anv_pipeline_cache.c
> index ad9c810..82551e9 100644
> --- a/src/intel/vulkan/anv_pipeline_cache.c
> +++ b/src/intel/vulkan/anv_pipeline_cache.c
> @@ -449,7 +449,7 @@ VkResult anv_GetPipelineCacheData(
>      blob_write_bytes(&blob, &header, sizeof(header));
>   
>      uint32_t count = 0;
> -   ssize_t count_offset = blob_reserve_uint32(&blob);
> +   intptr_t count_offset = blob_reserve_uint32(&blob);
>      if (count_offset < 0) {
>         *pDataSize = 0;
>         blob_finish(&blob);
> 

Thanks.

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>


More information about the mesa-dev mailing list