Module: wine Branch: master Commit: 671ac168e2d008b6dd6f62d441e1bb8bf9b28048 URL: http://source.winehq.org/git/wine.git/?a=commit;h=671ac168e2d008b6dd6f62d441...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Mon Jul 10 13:40:48 2017 +0300
d3drm: Use existing helper to manage visuals array.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/d3drm/d3drm_private.h | 4 ++-- dlls/d3drm/frame.c | 33 +++++++-------------------------- 2 files changed, 9 insertions(+), 28 deletions(-)
diff --git a/dlls/d3drm/d3drm_private.h b/dlls/d3drm/d3drm_private.h index 16c1415..861c3ab 100644 --- a/dlls/d3drm/d3drm_private.h +++ b/dlls/d3drm/d3drm_private.h @@ -68,8 +68,8 @@ struct d3drm_frame SIZE_T nb_children; SIZE_T children_size; IDirect3DRMFrame3 **children; - ULONG nb_visuals; - ULONG visuals_capacity; + SIZE_T nb_visuals; + SIZE_T visuals_size; IDirect3DRMVisual **visuals; SIZE_T nb_lights; SIZE_T lights_size; diff --git a/dlls/d3drm/frame.c b/dlls/d3drm/frame.c index 7d89686..aa7633b 100644 --- a/dlls/d3drm/frame.c +++ b/dlls/d3drm/frame.c @@ -1064,9 +1064,8 @@ static HRESULT WINAPI d3drm_frame1_AddRotation(IDirect3DRMFrame *iface,
static HRESULT WINAPI d3drm_frame3_AddVisual(IDirect3DRMFrame3 *iface, IUnknown *visual) { - struct d3drm_frame *This = impl_from_IDirect3DRMFrame3(iface); + struct d3drm_frame *frame = impl_from_IDirect3DRMFrame3(iface); ULONG i; - IDirect3DRMVisual** visuals;
TRACE("iface %p, visual %p.\n", iface, visual);
@@ -1074,33 +1073,15 @@ static HRESULT WINAPI d3drm_frame3_AddVisual(IDirect3DRMFrame3 *iface, IUnknown return D3DRMERR_BADOBJECT;
/* Check if already existing and return gracefully without increasing ref count */ - for (i = 0; i < This->nb_visuals; i++) - if (This->visuals[i] == (IDirect3DRMVisual *)visual) + for (i = 0; i < frame->nb_visuals; i++) + if (frame->visuals[i] == (IDirect3DRMVisual *)visual) return D3DRM_OK;
- if ((This->nb_visuals + 1) > This->visuals_capacity) - { - ULONG new_capacity; - - if (!This->visuals_capacity) - { - new_capacity = 16; - visuals = HeapAlloc(GetProcessHeap(), 0, new_capacity * sizeof(IDirect3DRMVisual*)); - } - else - { - new_capacity = This->visuals_capacity * 2; - visuals = HeapReAlloc(GetProcessHeap(), 0, This->visuals, new_capacity * sizeof(IDirect3DRMVisual*)); - } - - if (!visuals) - return E_OUTOFMEMORY; - - This->visuals_capacity = new_capacity; - This->visuals = visuals; - } + if (!d3drm_array_reserve((void **)&frame->visuals, &frame->visuals_size, + frame->nb_visuals + 1, sizeof(*frame->visuals))) + return E_OUTOFMEMORY;
- This->visuals[This->nb_visuals++] = (IDirect3DRMVisual *)visual; + frame->visuals[frame->nb_visuals++] = (IDirect3DRMVisual *)visual; IDirect3DRMVisual_AddRef(visual);
return D3DRM_OK;