[PATCH 4/5] d2d1: Replace d2d_calloc() with a global heap_calloc() helper.

Michael Stefaniuc mstefani at winehq.org
Thu Feb 1 15:14:23 CST 2018


Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

On 02/01/2018 12:37 AM, Henri Verbeet wrote:
> Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
> ---
>  dlls/d2d1/bitmap.c        | 2 +-
>  dlls/d2d1/brush.c         | 4 ++--
>  dlls/d2d1/d2d1_private.h  | 9 ---------
>  dlls/d2d1/geometry.c      | 4 ++--
>  dlls/d2d1/render_target.c | 2 +-
>  dlls/d2d1/stroke.c        | 2 +-
>  include/wine/heap.h       | 9 +++++++++
>  7 files changed, 16 insertions(+), 16 deletions(-)
> 
> diff --git a/dlls/d2d1/bitmap.c b/dlls/d2d1/bitmap.c
> index 028fab3..0d4098f 100644
> --- a/dlls/d2d1/bitmap.c
> +++ b/dlls/d2d1/bitmap.c
> @@ -511,7 +511,7 @@ HRESULT d2d_bitmap_create_from_wic_bitmap(ID2D1Factory *factory, ID3D10Device *d
>      pitch = ((bpp * size.width) + 15) & ~15;
>      if (pitch / bpp < size.width)
>          return E_OUTOFMEMORY;
> -    if (!(data = d2d_calloc(size.height, pitch)))
> +    if (!(data = heap_calloc(size.height, pitch)))
>          return E_OUTOFMEMORY;
>      data_size = size.height * pitch;
>  
> diff --git a/dlls/d2d1/brush.c b/dlls/d2d1/brush.c
> index 0531a3a..c46d940 100644
> --- a/dlls/d2d1/brush.c
> +++ b/dlls/d2d1/brush.c
> @@ -142,7 +142,7 @@ HRESULT d2d_gradient_create(ID2D1Factory *factory, ID3D10Device *device, const D
>      unsigned int i;
>      HRESULT hr;
>  
> -    if (!(data = d2d_calloc(stop_count, 2 * sizeof(*data))))
> +    if (!(data = heap_calloc(stop_count, 2 * sizeof(*data))))
>      {
>          ERR("Failed to allocate data.\n");
>          return E_OUTOFMEMORY;
> @@ -205,7 +205,7 @@ HRESULT d2d_gradient_create(ID2D1Factory *factory, ID3D10Device *device, const D
>      (*gradient)->view = view;
>  
>      (*gradient)->stop_count = stop_count;
> -    if (!((*gradient)->stops = d2d_calloc(stop_count, sizeof(*stops))))
> +    if (!((*gradient)->stops = heap_calloc(stop_count, sizeof(*stops))))
>      {
>          ID3D10ShaderResourceView_Release(view);
>          heap_free(*gradient);
> diff --git a/dlls/d2d1/d2d1_private.h b/dlls/d2d1/d2d1_private.h
> index 07f71a0..dbfb83c 100644
> --- a/dlls/d2d1/d2d1_private.h
> +++ b/dlls/d2d1/d2d1_private.h
> @@ -477,15 +477,6 @@ void d2d_transformed_geometry_init(struct d2d_geometry *geometry, ID2D1Factory *
>          ID2D1Geometry *src_geometry, const D2D_MATRIX_3X2_F *transform) DECLSPEC_HIDDEN;
>  struct d2d_geometry *unsafe_impl_from_ID2D1Geometry(ID2D1Geometry *iface) DECLSPEC_HIDDEN;
>  
> -static inline void *d2d_calloc(size_t count, size_t size)
> -{
> -    SIZE_T s = count * size;
> -
> -    if (size && s / size != count)
> -        return NULL;
> -    return heap_alloc(s);
> -}
> -
>  static inline BOOL d2d_array_reserve(void **elements, size_t *capacity, size_t count, size_t size)
>  {
>      size_t new_capacity, max_capacity;
> diff --git a/dlls/d2d1/geometry.c b/dlls/d2d1/geometry.c
> index 4a2f7d7..5b5a75b 100644
> --- a/dlls/d2d1/geometry.c
> +++ b/dlls/d2d1/geometry.c
> @@ -2025,7 +2025,7 @@ static HRESULT d2d_path_geometry_triangulate(struct d2d_geometry *geometry)
>          return S_OK;
>      }
>  
> -    if (!(vertices = d2d_calloc(vertex_count, sizeof(*vertices))))
> +    if (!(vertices = heap_calloc(vertex_count, sizeof(*vertices))))
>          return E_OUTOFMEMORY;
>  
>      for (i = 0, j = 0; i < geometry->u.path.figure_count; ++i)
> @@ -2792,7 +2792,7 @@ static HRESULT d2d_geometry_resolve_beziers(struct d2d_geometry *geometry)
>          geometry->fill.bezier_vertex_count += 3 * geometry->u.path.figures[i].bezier_control_count;
>      }
>  
> -    if (!(geometry->fill.bezier_vertices = d2d_calloc(geometry->fill.bezier_vertex_count,
> +    if (!(geometry->fill.bezier_vertices = heap_calloc(geometry->fill.bezier_vertex_count,
>              sizeof(*geometry->fill.bezier_vertices))))
>      {
>          ERR("Failed to allocate bezier vertices array.\n");
> diff --git a/dlls/d2d1/render_target.c b/dlls/d2d1/render_target.c
> index a202279..7afbc84 100644
> --- a/dlls/d2d1/render_target.c
> +++ b/dlls/d2d1/render_target.c
> @@ -1162,7 +1162,7 @@ static void d2d_rt_draw_glyph_run_bitmap(struct d2d_d3d_render_target *render_ta
>  
>      if (texture_type == DWRITE_TEXTURE_CLEARTYPE_3x1)
>          bitmap_size.width *= 3;
> -    if (!(opacity_values = d2d_calloc(bitmap_size.height, bitmap_size.width)))
> +    if (!(opacity_values = heap_calloc(bitmap_size.height, bitmap_size.width)))
>      {
>          ERR("Failed to allocate opacity values.\n");
>          goto done;
> diff --git a/dlls/d2d1/stroke.c b/dlls/d2d1/stroke.c
> index 63f88c7..511c134 100644
> --- a/dlls/d2d1/stroke.c
> +++ b/dlls/d2d1/stroke.c
> @@ -212,7 +212,7 @@ HRESULT d2d_stroke_style_init(struct d2d_stroke_style *style, ID2D1Factory *fact
>          if (!dashes || !dash_count)
>              return E_INVALIDARG;
>  
> -        if (!(style->dashes = d2d_calloc(dash_count, sizeof(*style->dashes))))
> +        if (!(style->dashes = heap_calloc(dash_count, sizeof(*style->dashes))))
>              return E_OUTOFMEMORY;
>          memcpy(style->dashes, dashes, dash_count * sizeof(*style->dashes));
>          style->dash_count = dash_count;
> diff --git a/include/wine/heap.h b/include/wine/heap.h
> index 681887b..97d3a56 100644
> --- a/include/wine/heap.h
> +++ b/include/wine/heap.h
> @@ -46,4 +46,13 @@ static inline void heap_free(void *mem)
>      HeapFree(GetProcessHeap(), 0, mem);
>  }
>  
> +static inline void *heap_calloc(SIZE_T count, SIZE_T size)
> +{
> +    SIZE_T len = count * size;
> +
> +    if (size && len / size != count)
> +        return NULL;
> +    return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, len);
> +}
> +
>  #endif  /* __WINE_WINE_HEAP_H */
> 




More information about the wine-devel mailing list