Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
55fbd32b
Commit
55fbd32b
authored
Nov 11, 2022
by
Nikolay Sivov
Committed by
Alexandre Julliard
Nov 14, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
d3drm: Use CRT allocation functions.
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
parent
463af41f
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
98 additions
and
99 deletions
+98
-99
d3drm.c
dlls/d3drm/d3drm.c
+2
-2
d3drm_main.c
dlls/d3drm/d3drm_main.c
+6
-6
d3drm_private.h
dlls/d3drm/d3drm_private.h
+0
-1
device.c
dlls/d3drm/device.c
+2
-2
face.c
dlls/d3drm/face.c
+2
-2
frame.c
dlls/d3drm/frame.c
+26
-26
light.c
dlls/d3drm/light.c
+2
-2
material.c
dlls/d3drm/material.c
+2
-2
meshbuilder.c
dlls/d3drm/meshbuilder.c
+38
-38
texture.c
dlls/d3drm/texture.c
+16
-16
viewport.c
dlls/d3drm/viewport.c
+2
-2
No files found.
dlls/d3drm/d3drm.c
View file @
55fbd32b
...
...
@@ -211,7 +211,7 @@ static inline struct d3drm *impl_from_IDirect3DRM3(IDirect3DRM3 *iface)
static
void
d3drm_destroy
(
struct
d3drm
*
d3drm
)
{
TRACE
(
"d3drm object %p is being destroyed.
\n
"
,
d3drm
);
heap_
free
(
d3drm
);
free
(
d3drm
);
}
static
HRESULT
WINAPI
d3drm1_QueryInterface
(
IDirect3DRM
*
iface
,
REFIID
riid
,
void
**
out
)
...
...
@@ -2325,7 +2325,7 @@ HRESULT WINAPI Direct3DRMCreate(IDirect3DRM **d3drm)
TRACE
(
"d3drm %p.
\n
"
,
d3drm
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRM_iface
.
lpVtbl
=
&
d3drm1_vtbl
;
...
...
dlls/d3drm/d3drm_main.c
View file @
55fbd32b
...
...
@@ -43,7 +43,7 @@ HRESULT d3drm_object_add_destroy_callback(struct d3drm_object *object, D3DRMOBJE
if
(
!
cb
)
return
D3DRMERR_BADVALUE
;
if
(
!
(
callback
=
heap_
alloc
(
sizeof
(
*
callback
))))
if
(
!
(
callback
=
m
alloc
(
sizeof
(
*
callback
))))
return
E_OUTOFMEMORY
;
callback
->
cb
=
cb
;
...
...
@@ -65,7 +65,7 @@ HRESULT d3drm_object_delete_destroy_callback(struct d3drm_object *object, D3DRMO
if
(
callback
->
cb
==
cb
&&
callback
->
ctx
==
ctx
)
{
list_remove
(
&
callback
->
entry
);
heap_
free
(
callback
);
free
(
callback
);
break
;
}
}
...
...
@@ -120,13 +120,13 @@ HRESULT d3drm_object_set_name(struct d3drm_object *object, const char *name)
{
DWORD
req_size
;
heap_
free
(
object
->
name
);
free
(
object
->
name
);
object
->
name
=
NULL
;
if
(
name
)
{
req_size
=
strlen
(
name
)
+
1
;
if
(
!
(
object
->
name
=
heap_
alloc
(
req_size
)))
if
(
!
(
object
->
name
=
m
alloc
(
req_size
)))
return
E_OUTOFMEMORY
;
memcpy
(
object
->
name
,
name
,
req_size
);
}
...
...
@@ -142,9 +142,9 @@ void d3drm_object_cleanup(IDirect3DRMObject *iface, struct d3drm_object *object)
{
callback
->
cb
(
iface
,
callback
->
ctx
);
list_remove
(
&
callback
->
entry
);
heap_
free
(
callback
);
free
(
callback
);
}
heap_
free
(
object
->
name
);
free
(
object
->
name
);
object
->
name
=
NULL
;
}
dlls/d3drm/d3drm_private.h
View file @
55fbd32b
...
...
@@ -30,7 +30,6 @@
#include "d3drmwin.h"
#include "rmxfguid.h"
#include "wine/debug.h"
#include "wine/heap.h"
#include "wine/list.h"
struct
d3drm_matrix
...
...
dlls/d3drm/device.c
View file @
55fbd32b
...
...
@@ -58,7 +58,7 @@ void d3drm_device_destroy(struct d3drm_device *device)
IDirectDraw_Release
(
device
->
ddraw
);
IDirect3DRM_Release
(
device
->
d3drm
);
}
heap_
free
(
device
);
free
(
device
);
}
static
inline
struct
d3drm_device
*
impl_from_IDirect3DRMWinDevice
(
IDirect3DRMWinDevice
*
iface
)
...
...
@@ -1660,7 +1660,7 @@ HRESULT d3drm_device_create(struct d3drm_device **device, IDirect3DRM *d3drm)
TRACE
(
"device %p, d3drm %p.
\n
"
,
device
,
d3drm
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMDevice_iface
.
lpVtbl
=
&
d3drm_device1_vtbl
;
...
...
dlls/d3drm/face.c
View file @
55fbd32b
...
...
@@ -79,7 +79,7 @@ static ULONG WINAPI d3drm_face1_Release(IDirect3DRMFace *iface)
if
(
!
refcount
)
{
d3drm_object_cleanup
((
IDirect3DRMObject
*
)
iface
,
&
face
->
obj
);
heap_
free
(
face
);
free
(
face
);
}
return
refcount
;
...
...
@@ -624,7 +624,7 @@ HRESULT d3drm_face_create(struct d3drm_face **face)
TRACE
(
"face %p.
\n
"
,
face
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMFace_iface
.
lpVtbl
=
&
d3drm_face1_vtbl
;
...
...
dlls/d3drm/frame.c
View file @
55fbd32b
...
...
@@ -206,8 +206,8 @@ static ULONG WINAPI d3drm_frame_array_Release(IDirect3DRMFrameArray *iface)
{
IDirect3DRMFrame_Release
(
array
->
frames
[
i
]);
}
heap_
free
(
array
->
frames
);
heap_
free
(
array
);
free
(
array
->
frames
);
free
(
array
);
}
return
refcount
;
...
...
@@ -258,7 +258,7 @@ static struct d3drm_frame_array *d3drm_frame_array_create(unsigned int frame_cou
struct
d3drm_frame_array
*
array
;
unsigned
int
i
;
if
(
!
(
array
=
heap_alloc_zero
(
sizeof
(
*
array
))))
if
(
!
(
array
=
calloc
(
1
,
sizeof
(
*
array
))))
return
NULL
;
array
->
IDirect3DRMFrameArray_iface
.
lpVtbl
=
&
d3drm_frame_array_vtbl
;
...
...
@@ -267,9 +267,9 @@ static struct d3drm_frame_array *d3drm_frame_array_create(unsigned int frame_cou
if
(
frame_count
)
{
if
(
!
(
array
->
frames
=
heap_
calloc
(
frame_count
,
sizeof
(
*
array
->
frames
))))
if
(
!
(
array
->
frames
=
calloc
(
frame_count
,
sizeof
(
*
array
->
frames
))))
{
heap_
free
(
array
);
free
(
array
);
return
NULL
;
}
...
...
@@ -324,8 +324,8 @@ static ULONG WINAPI d3drm_visual_array_Release(IDirect3DRMVisualArray *iface)
{
IDirect3DRMVisual_Release
(
array
->
visuals
[
i
]);
}
heap_
free
(
array
->
visuals
);
heap_
free
(
array
);
free
(
array
->
visuals
);
free
(
array
);
}
return
refcount
;
...
...
@@ -376,7 +376,7 @@ static struct d3drm_visual_array *d3drm_visual_array_create(unsigned int visual_
struct
d3drm_visual_array
*
array
;
unsigned
int
i
;
if
(
!
(
array
=
heap_alloc_zero
(
sizeof
(
*
array
))))
if
(
!
(
array
=
calloc
(
1
,
sizeof
(
*
array
))))
return
NULL
;
array
->
IDirect3DRMVisualArray_iface
.
lpVtbl
=
&
d3drm_visual_array_vtbl
;
...
...
@@ -385,9 +385,9 @@ static struct d3drm_visual_array *d3drm_visual_array_create(unsigned int visual_
if
(
visual_count
)
{
if
(
!
(
array
->
visuals
=
heap_
calloc
(
visual_count
,
sizeof
(
*
array
->
visuals
))))
if
(
!
(
array
->
visuals
=
calloc
(
visual_count
,
sizeof
(
*
array
->
visuals
))))
{
heap_
free
(
array
);
free
(
array
);
return
NULL
;
}
...
...
@@ -443,8 +443,8 @@ static ULONG WINAPI d3drm_light_array_Release(IDirect3DRMLightArray *iface)
{
IDirect3DRMLight_Release
(
array
->
lights
[
i
]);
}
heap_
free
(
array
->
lights
);
heap_
free
(
array
);
free
(
array
->
lights
);
free
(
array
);
}
return
refcount
;
...
...
@@ -495,7 +495,7 @@ static struct d3drm_light_array *d3drm_light_array_create(unsigned int light_cou
struct
d3drm_light_array
*
array
;
unsigned
int
i
;
if
(
!
(
array
=
heap_alloc_zero
(
sizeof
(
*
array
))))
if
(
!
(
array
=
calloc
(
1
,
sizeof
(
*
array
))))
return
NULL
;
array
->
IDirect3DRMLightArray_iface
.
lpVtbl
=
&
d3drm_light_array_vtbl
;
...
...
@@ -504,9 +504,9 @@ static struct d3drm_light_array *d3drm_light_array_create(unsigned int light_cou
if
(
light_count
)
{
if
(
!
(
array
->
lights
=
heap_
calloc
(
light_count
,
sizeof
(
*
array
->
lights
))))
if
(
!
(
array
->
lights
=
calloc
(
light_count
,
sizeof
(
*
array
->
lights
))))
{
heap_
free
(
array
);
free
(
array
);
return
NULL
;
}
...
...
@@ -613,19 +613,19 @@ static ULONG WINAPI d3drm_frame3_Release(IDirect3DRMFrame3 *iface)
{
IDirect3DRMFrame3_Release
(
frame
->
children
[
i
]);
}
heap_
free
(
frame
->
children
);
free
(
frame
->
children
);
for
(
i
=
0
;
i
<
frame
->
nb_visuals
;
++
i
)
{
IDirect3DRMVisual_Release
(
frame
->
visuals
[
i
]);
}
heap_
free
(
frame
->
visuals
);
free
(
frame
->
visuals
);
for
(
i
=
0
;
i
<
frame
->
nb_lights
;
++
i
)
{
IDirect3DRMLight_Release
(
frame
->
lights
[
i
]);
}
heap_
free
(
frame
->
lights
);
free
(
frame
->
lights
);
IDirect3DRM_Release
(
frame
->
d3drm
);
heap_
free
(
frame
);
free
(
frame
);
}
return
refcount
;
...
...
@@ -3134,7 +3134,7 @@ HRESULT d3drm_frame_create(struct d3drm_frame **frame, IUnknown *parent_frame, I
TRACE
(
"frame %p, parent_frame %p, d3drm %p.
\n
"
,
frame
,
parent_frame
,
d3drm
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMFrame_iface
.
lpVtbl
=
&
d3drm_frame1_vtbl
;
...
...
@@ -3155,7 +3155,7 @@ HRESULT d3drm_frame_create(struct d3drm_frame **frame, IUnknown *parent_frame, I
if
(
FAILED
(
hr
=
IDirect3DRMFrame_QueryInterface
(
parent_frame
,
&
IID_IDirect3DRMFrame3
,
(
void
**
)
&
p
)))
{
heap_
free
(
object
);
free
(
object
);
return
hr
;
}
IDirect3DRMFrame_Release
(
parent_frame
);
...
...
@@ -3232,10 +3232,10 @@ static ULONG WINAPI d3drm_animation2_Release(IDirect3DRMAnimation2 *iface)
{
d3drm_object_cleanup
((
IDirect3DRMObject
*
)
&
animation
->
IDirect3DRMAnimation_iface
,
&
animation
->
obj
);
IDirect3DRM_Release
(
animation
->
d3drm
);
heap_
free
(
animation
->
rotate
.
keys
);
heap_
free
(
animation
->
scale
.
keys
);
heap_
free
(
animation
->
position
.
keys
);
heap_
free
(
animation
);
free
(
animation
->
rotate
.
keys
);
free
(
animation
->
scale
.
keys
);
free
(
animation
->
position
.
keys
);
free
(
animation
);
}
return
refcount
;
...
...
@@ -3886,7 +3886,7 @@ HRESULT d3drm_animation_create(struct d3drm_animation **animation, IDirect3DRM *
TRACE
(
"animation %p, d3drm %p.
\n
"
,
animation
,
d3drm
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMAnimation_iface
.
lpVtbl
=
&
d3drm_animation1_vtbl
;
...
...
dlls/d3drm/light.c
View file @
55fbd32b
...
...
@@ -67,7 +67,7 @@ static ULONG WINAPI d3drm_light_Release(IDirect3DRMLight *iface)
{
d3drm_object_cleanup
((
IDirect3DRMObject
*
)
iface
,
&
light
->
obj
);
IDirect3DRM_Release
(
light
->
d3drm
);
heap_
free
(
light
);
free
(
light
);
}
return
refcount
;
...
...
@@ -375,7 +375,7 @@ HRESULT d3drm_light_create(struct d3drm_light **light, IDirect3DRM *d3drm)
TRACE
(
"light %p.
\n
"
,
light
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMLight_iface
.
lpVtbl
=
&
d3drm_light_vtbl
;
...
...
dlls/d3drm/material.c
View file @
55fbd32b
...
...
@@ -68,7 +68,7 @@ static ULONG WINAPI d3drm_material_Release(IDirect3DRMMaterial2 *iface)
{
d3drm_object_cleanup
((
IDirect3DRMObject
*
)
iface
,
&
material
->
obj
);
IDirect3DRM_Release
(
material
->
d3drm
);
heap_
free
(
material
);
free
(
material
);
}
return
refcount
;
...
...
@@ -283,7 +283,7 @@ HRESULT d3drm_material_create(struct d3drm_material **material, IDirect3DRM *d3d
TRACE
(
"material %p, d3drm %p.
\n
"
,
material
,
d3drm
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMMaterial2_iface
.
lpVtbl
=
&
d3drm_material_vtbl
;
...
...
dlls/d3drm/meshbuilder.c
View file @
55fbd32b
...
...
@@ -276,7 +276,7 @@ BOOL d3drm_array_reserve(void **elements, SIZE_T *capacity, SIZE_T element_count
if
(
new_capacity
<
element_count
)
new_capacity
=
max_capacity
;
if
(
!
(
new_elements
=
heap_
realloc
(
*
elements
,
new_capacity
*
element_size
)))
if
(
!
(
new_elements
=
realloc
(
*
elements
,
new_capacity
*
element_size
)))
return
FALSE
;
*
elements
=
new_elements
;
...
...
@@ -309,19 +309,19 @@ static void clean_mesh_builder_data(struct d3drm_mesh_builder *mesh_builder)
DWORD
i
;
IDirect3DRMMeshBuilder3_SetName
(
&
mesh_builder
->
IDirect3DRMMeshBuilder3_iface
,
NULL
);
heap_
free
(
mesh_builder
->
vertices
);
free
(
mesh_builder
->
vertices
);
mesh_builder
->
vertices
=
NULL
;
mesh_builder
->
nb_vertices
=
0
;
mesh_builder
->
vertices_size
=
0
;
heap_
free
(
mesh_builder
->
normals
);
free
(
mesh_builder
->
normals
);
mesh_builder
->
normals
=
NULL
;
mesh_builder
->
nb_normals
=
0
;
mesh_builder
->
normals_size
=
0
;
heap_
free
(
mesh_builder
->
pFaceData
);
free
(
mesh_builder
->
pFaceData
);
mesh_builder
->
pFaceData
=
NULL
;
mesh_builder
->
face_data_size
=
0
;
mesh_builder
->
nb_faces
=
0
;
heap_
free
(
mesh_builder
->
pCoords2d
);
free
(
mesh_builder
->
pCoords2d
);
mesh_builder
->
pCoords2d
=
NULL
;
mesh_builder
->
nb_coords2d
=
0
;
for
(
i
=
0
;
i
<
mesh_builder
->
nb_materials
;
i
++
)
...
...
@@ -332,9 +332,9 @@ static void clean_mesh_builder_data(struct d3drm_mesh_builder *mesh_builder)
IDirect3DRMTexture3_Release
(
mesh_builder
->
materials
[
i
].
texture
);
}
mesh_builder
->
nb_materials
=
0
;
heap_
free
(
mesh_builder
->
materials
);
free
(
mesh_builder
->
materials
);
mesh_builder
->
materials
=
NULL
;
heap_
free
(
mesh_builder
->
material_indices
);
free
(
mesh_builder
->
material_indices
);
mesh_builder
->
material_indices
=
NULL
;
}
...
...
@@ -393,7 +393,7 @@ static ULONG WINAPI d3drm_mesh_builder2_Release(IDirect3DRMMeshBuilder2 *iface)
if
(
mesh_builder
->
texture
)
IDirect3DRMTexture3_Release
(
mesh_builder
->
texture
);
IDirect3DRM_Release
(
mesh_builder
->
d3drm
);
heap_
free
(
mesh_builder
);
free
(
mesh_builder
);
}
return
refcount
;
...
...
@@ -1047,12 +1047,12 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData,
{
char
*
name
;
if
(
!
(
name
=
heap_
alloc
(
size
)))
if
(
!
(
name
=
m
alloc
(
size
)))
return
E_OUTOFMEMORY
;
if
(
SUCCEEDED
(
hr
=
IDirectXFileData_GetName
(
pData
,
name
,
&
size
)))
IDirect3DRMMeshBuilder3_SetName
(
iface
,
name
);
heap_
free
(
name
);
free
(
name
);
if
(
hr
!=
DXFILE_OK
)
return
hr
;
}
...
...
@@ -1080,12 +1080,12 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData,
}
memcpy
(
mesh_builder
->
vertices
,
ptr
+
sizeof
(
DWORD
),
mesh_builder
->
nb_vertices
*
sizeof
(
D3DVECTOR
));
faces_vertex_idx_ptr
=
faces_vertex_idx_data
=
heap_
alloc
(
faces_vertex_idx_size
);
faces_vertex_idx_ptr
=
faces_vertex_idx_data
=
m
alloc
(
faces_vertex_idx_size
);
memcpy
(
faces_vertex_idx_data
,
ptr
+
sizeof
(
DWORD
)
+
mesh_builder
->
nb_vertices
*
sizeof
(
D3DVECTOR
)
+
sizeof
(
DWORD
),
faces_vertex_idx_size
);
/* Each vertex index will have its normal index counterpart so just allocate twice the size */
mesh_builder
->
pFaceData
=
heap_
alloc
(
faces_vertex_idx_size
*
2
);
mesh_builder
->
pFaceData
=
m
alloc
(
faces_vertex_idx_size
*
2
);
faces_data_ptr
=
(
DWORD
*
)
mesh_builder
->
pFaceData
;
while
(
1
)
...
...
@@ -1137,7 +1137,7 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData,
memcpy
(
mesh_builder
->
normals
,
ptr
+
sizeof
(
DWORD
),
mesh_builder
->
nb_normals
*
sizeof
(
D3DVECTOR
));
faces_normal_idx_size
=
size
-
(
2
*
sizeof
(
DWORD
)
+
mesh_builder
->
nb_normals
*
sizeof
(
D3DVECTOR
));
faces_normal_idx_ptr
=
faces_normal_idx_data
=
heap_
alloc
(
faces_normal_idx_size
);
faces_normal_idx_ptr
=
faces_normal_idx_data
=
m
alloc
(
faces_normal_idx_size
);
memcpy
(
faces_normal_idx_data
,
ptr
+
sizeof
(
DWORD
)
+
mesh_builder
->
nb_normals
*
sizeof
(
D3DVECTOR
)
+
sizeof
(
DWORD
),
faces_normal_idx_size
);
}
...
...
@@ -1151,7 +1151,7 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData,
TRACE
(
"MeshTextureCoords: nb_coords2d = %ld
\n
"
,
mesh_builder
->
nb_coords2d
);
mesh_builder
->
pCoords2d
=
heap_
calloc
(
mesh_builder
->
nb_coords2d
,
sizeof
(
*
mesh_builder
->
pCoords2d
));
mesh_builder
->
pCoords2d
=
calloc
(
mesh_builder
->
nb_coords2d
,
sizeof
(
*
mesh_builder
->
pCoords2d
));
memcpy
(
mesh_builder
->
pCoords2d
,
ptr
+
sizeof
(
DWORD
),
mesh_builder
->
nb_coords2d
*
sizeof
(
*
mesh_builder
->
pCoords2d
));
}
else
if
(
IsEqualGUID
(
guid
,
&
TID_D3DRMMeshMaterialList
))
...
...
@@ -1179,15 +1179,15 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData,
if
(
size
!=
data_size
)
WARN
(
"Returned size %lu does not match expected one %lu
\n
"
,
size
,
data_size
);
if
(
!
(
mesh_builder
->
material_indices
=
heap_
calloc
(
nb_face_indices
,
if
(
!
(
mesh_builder
->
material_indices
=
calloc
(
nb_face_indices
,
sizeof
(
*
mesh_builder
->
material_indices
))))
goto
end
;
memcpy
(
mesh_builder
->
material_indices
,
ptr
+
2
*
sizeof
(
DWORD
),
nb_face_indices
*
sizeof
(
*
mesh_builder
->
material_indices
));
if
(
!
(
mesh_builder
->
materials
=
heap_
calloc
(
nb_materials
,
sizeof
(
*
mesh_builder
->
materials
))))
if
(
!
(
mesh_builder
->
materials
=
calloc
(
nb_materials
,
sizeof
(
*
mesh_builder
->
materials
))))
{
heap_
free
(
mesh_builder
->
material_indices
);
free
(
mesh_builder
->
material_indices
);
goto
end
;
}
mesh_builder
->
nb_materials
=
nb_materials
;
...
...
@@ -1439,7 +1439,7 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData,
if
(
!
mesh_builder
->
pCoords2d
)
{
mesh_builder
->
nb_coords2d
=
mesh_builder
->
nb_vertices
;
mesh_builder
->
pCoords2d
=
heap_
calloc
(
mesh_builder
->
nb_coords2d
,
sizeof
(
*
mesh_builder
->
pCoords2d
));
mesh_builder
->
pCoords2d
=
calloc
(
mesh_builder
->
nb_coords2d
,
sizeof
(
*
mesh_builder
->
pCoords2d
));
for
(
i
=
0
;
i
<
mesh_builder
->
nb_coords2d
;
++
i
)
{
mesh_builder
->
pCoords2d
[
i
].
u
=
0
.
0
f
;
...
...
@@ -1453,8 +1453,8 @@ HRESULT load_mesh_data(IDirect3DRMMeshBuilder3 *iface, IDirectXFileData *pData,
end:
heap_
free
(
faces_normal_idx_data
);
heap_
free
(
faces_vertex_idx_data
);
free
(
faces_normal_idx_data
);
free
(
faces_vertex_idx_data
);
return
ret
;
}
...
...
@@ -1966,7 +1966,7 @@ static HRESULT WINAPI d3drm_mesh_builder3_CreateMesh(IDirect3DRMMeshBuilder3 *if
int
k
;
D3DRMVERTEX
*
vertices
;
if
(
!
(
vertices
=
heap_
calloc
(
mesh_builder
->
nb_vertices
,
sizeof
(
*
vertices
))))
if
(
!
(
vertices
=
calloc
(
mesh_builder
->
nb_vertices
,
sizeof
(
*
vertices
))))
{
IDirect3DRMMesh_Release
(
*
mesh
);
return
E_OUTOFMEMORY
;
...
...
@@ -1974,7 +1974,7 @@ static HRESULT WINAPI d3drm_mesh_builder3_CreateMesh(IDirect3DRMMeshBuilder3 *if
for
(
i
=
0
;
i
<
mesh_builder
->
nb_vertices
;
i
++
)
vertices
[
i
].
position
=
mesh_builder
->
vertices
[
i
];
hr
=
IDirect3DRMMesh_SetVertices
(
*
mesh
,
0
,
0
,
mesh_builder
->
nb_vertices
,
vertices
);
heap_
free
(
vertices
);
free
(
vertices
);
/* Groups are in reverse order compared to materials list in X file */
for
(
k
=
mesh_builder
->
nb_materials
-
1
;
k
>=
0
;
k
--
)
...
...
@@ -1987,15 +1987,15 @@ static HRESULT WINAPI d3drm_mesh_builder3_CreateMesh(IDirect3DRMMeshBuilder3 *if
unsigned
nb_vertices
=
0
;
unsigned
nb_faces
=
0
;
if
(
!
(
used_vertices
=
heap_
calloc
(
mesh_builder
->
face_data_size
,
sizeof
(
*
used_vertices
))))
if
(
!
(
used_vertices
=
calloc
(
mesh_builder
->
face_data_size
,
sizeof
(
*
used_vertices
))))
{
IDirect3DRMMesh_Release
(
*
mesh
);
return
E_OUTOFMEMORY
;
}
if
(
!
(
face_data
=
heap_
calloc
(
mesh_builder
->
face_data_size
,
sizeof
(
*
face_data
))))
if
(
!
(
face_data
=
calloc
(
mesh_builder
->
face_data_size
,
sizeof
(
*
face_data
))))
{
heap_
free
(
used_vertices
);
free
(
used_vertices
);
IDirect3DRMMesh_Release
(
*
mesh
);
return
E_OUTOFMEMORY
;
}
...
...
@@ -2049,8 +2049,8 @@ static HRESULT WINAPI d3drm_mesh_builder3_CreateMesh(IDirect3DRMMeshBuilder3 *if
nb_vertices
++
;
hr
=
IDirect3DRMMesh_AddGroup
(
*
mesh
,
nb_vertices
,
nb_faces
,
vertex_per_face
,
face_data
,
&
group
);
heap_
free
(
used_vertices
);
heap_
free
(
face_data
);
free
(
used_vertices
);
free
(
face_data
);
if
(
SUCCEEDED
(
hr
))
hr
=
IDirect3DRMMesh_SetGroupColor
(
*
mesh
,
group
,
mesh_builder
->
materials
[
k
].
color
);
if
(
SUCCEEDED
(
hr
))
...
...
@@ -2340,7 +2340,7 @@ HRESULT d3drm_mesh_builder_create(struct d3drm_mesh_builder **mesh_builder, IDir
TRACE
(
"mesh_builder %p.
\n
"
,
mesh_builder
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMMeshBuilder2_iface
.
lpVtbl
=
&
d3drm_mesh_builder2_vtbl
;
...
...
@@ -2402,15 +2402,15 @@ static ULONG WINAPI d3drm_mesh_Release(IDirect3DRMMesh *iface)
IDirect3DRM_Release
(
mesh
->
d3drm
);
for
(
i
=
0
;
i
<
mesh
->
nb_groups
;
++
i
)
{
heap_
free
(
mesh
->
groups
[
i
].
vertices
);
heap_
free
(
mesh
->
groups
[
i
].
face_data
);
free
(
mesh
->
groups
[
i
].
vertices
);
free
(
mesh
->
groups
[
i
].
face_data
);
if
(
mesh
->
groups
[
i
].
material
)
IDirect3DRMMaterial2_Release
(
mesh
->
groups
[
i
].
material
);
if
(
mesh
->
groups
[
i
].
texture
)
IDirect3DRMTexture3_Release
(
mesh
->
groups
[
i
].
texture
);
}
heap_
free
(
mesh
->
groups
);
heap_
free
(
mesh
);
free
(
mesh
->
groups
);
free
(
mesh
);
}
return
refcount
;
...
...
@@ -2531,7 +2531,7 @@ static HRESULT WINAPI d3drm_mesh_AddGroup(IDirect3DRMMesh *iface, unsigned verte
group
=
mesh
->
groups
+
mesh
->
nb_groups
;
if
(
!
(
group
->
vertices
=
heap_
calloc
(
vertex_count
,
sizeof
(
*
group
->
vertices
))))
if
(
!
(
group
->
vertices
=
calloc
(
vertex_count
,
sizeof
(
*
group
->
vertices
))))
return
E_OUTOFMEMORY
;
group
->
nb_vertices
=
vertex_count
;
group
->
nb_faces
=
face_count
;
...
...
@@ -2556,9 +2556,9 @@ static HRESULT WINAPI d3drm_mesh_AddGroup(IDirect3DRMMesh *iface, unsigned verte
}
}
if
(
!
(
group
->
face_data
=
heap_
calloc
(
group
->
face_data_size
,
sizeof
(
*
group
->
face_data
))))
if
(
!
(
group
->
face_data
=
calloc
(
group
->
face_data_size
,
sizeof
(
*
group
->
face_data
))))
{
heap_
free
(
group
->
vertices
);
free
(
group
->
vertices
);
return
E_OUTOFMEMORY
;
}
memcpy
(
group
->
face_data
,
face_data
,
group
->
face_data_size
*
sizeof
(
*
face_data
));
...
...
@@ -2840,7 +2840,7 @@ HRESULT d3drm_mesh_create(struct d3drm_mesh **mesh, IDirect3DRM *d3drm)
TRACE
(
"mesh %p, d3drm %p.
\n
"
,
mesh
,
d3drm
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMMesh_iface
.
lpVtbl
=
&
d3drm_mesh_vtbl
;
...
...
@@ -2894,7 +2894,7 @@ static ULONG WINAPI d3drm_wrap_Release(IDirect3DRMWrap *iface)
if
(
!
refcount
)
{
d3drm_object_cleanup
((
IDirect3DRMObject
*
)
iface
,
&
wrap
->
obj
);
heap_
free
(
wrap
);
free
(
wrap
);
}
return
refcount
;
...
...
@@ -3026,7 +3026,7 @@ HRESULT d3drm_wrap_create(struct d3drm_wrap **wrap, IDirect3DRM *d3drm)
TRACE
(
"wrap %p, d3drm %p.
\n
"
,
wrap
,
d3drm
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMWrap_iface
.
lpVtbl
=
&
d3drm_wrap_vtbl
;
...
...
dlls/d3drm/texture.c
View file @
55fbd32b
...
...
@@ -47,7 +47,7 @@ static void d3drm_texture_destroy(struct d3drm_texture *texture)
IDirect3DRM_Release
(
texture
->
d3drm
);
if
(
texture
->
surface
)
IDirectDrawSurface_Release
(
texture
->
surface
);
heap_
free
(
texture
);
free
(
texture
);
}
static
BOOL
d3drm_validate_image
(
D3DRMIMAGE
*
image
)
...
...
@@ -79,17 +79,17 @@ static BOOL d3drm_image_palettise(D3DRMIMAGE *image, unsigned char *src_data,
src_pitch
=
flip
?
-
w
*
3
:
w
*
3
;
dst_pitch
=
(
w
+
3
)
&
~
3
;
if
(
!
(
dst_data
=
heap_
alloc
(
dst_pitch
*
h
)))
if
(
!
(
dst_data
=
m
alloc
(
dst_pitch
*
h
)))
{
WARN
(
"Failed to allocate image buffer.
\n
"
);
return
FALSE
;
}
memset
(
dst_data
,
0xff
,
dst_pitch
*
h
);
if
(
!
(
palette
=
heap_
alloc
(
256
*
sizeof
(
*
palette
))))
if
(
!
(
palette
=
m
alloc
(
256
*
sizeof
(
*
palette
))))
{
WARN
(
"Failed to allocate palette.
\n
"
);
heap_
free
(
dst_data
);
free
(
dst_data
);
return
FALSE
;
}
...
...
@@ -113,8 +113,8 @@ static BOOL d3drm_image_palettise(D3DRMIMAGE *image, unsigned char *src_data,
{
if
(
colour_count
==
256
)
{
heap_
free
(
dst_data
);
heap_
free
(
palette
);
free
(
dst_data
);
free
(
palette
);
return
FALSE
;
}
...
...
@@ -140,7 +140,7 @@ static BOOL d3drm_image_palettise(D3DRMIMAGE *image, unsigned char *src_data,
image
->
green_mask
=
0xff
;
image
->
blue_mask
=
0xff
;
image
->
palette_size
=
colour_count
;
if
(
!
(
image
->
palette
=
heap_
realloc
(
palette
,
colour_count
*
sizeof
(
*
palette
))))
if
(
!
(
image
->
palette
=
realloc
(
palette
,
colour_count
*
sizeof
(
*
palette
))))
image
->
palette
=
palette
;
return
TRUE
;
...
...
@@ -161,7 +161,7 @@ static HRESULT d3drm_image_load_32(D3DRMIMAGE *image, unsigned char *src_data,
src_pitch
=
flip
?
-
w
*
3
:
w
*
3
;
dst_pitch
=
w
*
4
;
if
(
!
(
dst_data
=
heap_
alloc
(
dst_pitch
*
h
)))
if
(
!
(
dst_data
=
m
alloc
(
dst_pitch
*
h
)))
{
WARN
(
"Failed to allocate image buffer.
\n
"
);
return
D3DRMERR_BADALLOC
;
...
...
@@ -206,16 +206,16 @@ static HRESULT d3drm_image_load_8(D3DRMIMAGE *image, const RGBQUAD *palette,
if
(
w
>
~
(
SIZE_T
)
0
/
h
)
return
D3DRMERR_BADALLOC
;
if
(
!
(
dst_data
=
heap_
alloc
(
w
*
h
)))
if
(
!
(
dst_data
=
m
alloc
(
w
*
h
)))
{
WARN
(
"Failed to allocate image buffer.
\n
"
);
return
D3DRMERR_BADALLOC
;
}
if
(
!
(
image
->
palette
=
heap_
alloc
(
256
*
sizeof
(
*
image
->
palette
))))
if
(
!
(
image
->
palette
=
m
alloc
(
256
*
sizeof
(
*
image
->
palette
))))
{
WARN
(
"Failed to allocate palette.
\n
"
);
heap_
free
(
dst_data
);
free
(
dst_data
);
return
D3DRMERR_BADALLOC
;
}
...
...
@@ -257,8 +257,8 @@ static void CDECL destroy_image_callback(IDirect3DRMObject *obj, void *arg)
TRACE
(
"texture object %p, image %p.
\n
"
,
obj
,
image
);
heap_
free
(
image
->
buffer1
);
heap_
free
(
image
);
free
(
image
->
buffer1
);
free
(
image
);
}
static
HRESULT
d3drm_texture_load
(
struct
d3drm_texture
*
texture
,
...
...
@@ -294,7 +294,7 @@ static HRESULT d3drm_texture_load(struct d3drm_texture *texture,
return
D3DRMERR_BADVALUE
;
hr
=
D3DRMERR_BADALLOC
;
if
(
!
(
image
=
heap_alloc_zero
(
sizeof
(
*
image
))))
if
(
!
(
image
=
calloc
(
1
,
sizeof
(
*
image
))))
goto
fail
;
hr
=
D3DRMERR_BADFILE
;
...
...
@@ -344,7 +344,7 @@ static HRESULT d3drm_texture_load(struct d3drm_texture *texture,
return
hr
;
fail:
heap_
free
(
image
);
free
(
image
);
UnmapViewOfFile
(
header
);
return
hr
;
...
...
@@ -1450,7 +1450,7 @@ HRESULT d3drm_texture_create(struct d3drm_texture **texture, IDirect3DRM *d3drm)
TRACE
(
"texture %p.
\n
"
,
texture
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMTexture_iface
.
lpVtbl
=
&
d3drm_texture1_vtbl
;
...
...
dlls/d3drm/viewport.c
View file @
55fbd32b
...
...
@@ -73,7 +73,7 @@ static void d3drm_viewport_destroy(struct d3drm_viewport *viewport)
IDirect3DRM_Release
(
viewport
->
d3drm
);
}
heap_
free
(
viewport
);
free
(
viewport
);
}
static
HRESULT
WINAPI
d3drm_viewport2_QueryInterface
(
IDirect3DRMViewport2
*
iface
,
REFIID
riid
,
void
**
out
)
...
...
@@ -1133,7 +1133,7 @@ HRESULT d3drm_viewport_create(struct d3drm_viewport **viewport, IDirect3DRM *d3d
TRACE
(
"viewport %p, d3drm %p.
\n
"
,
viewport
,
d3drm
);
if
(
!
(
object
=
heap_alloc_zero
(
sizeof
(
*
object
))))
if
(
!
(
object
=
calloc
(
1
,
sizeof
(
*
object
))))
return
E_OUTOFMEMORY
;
object
->
IDirect3DRMViewport_iface
.
lpVtbl
=
&
d3drm_viewport1_vtbl
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment