Signed-off-by: Rémi Bernon <rbernon(a)codeweavers.com>
---
dlls/hidclass.sys/buffer.c | 23 ++++++++++++-----------
dlls/hidclass.sys/descriptor.c | 18 +++++++++---------
dlls/hidclass.sys/device.c | 23 ++++++++++++-----------
dlls/hidclass.sys/pnp.c | 13 +++++++------
4 files changed, 40 insertions(+), 37 deletions(-)
diff --git a/dlls/hidclass.sys/buffer.c b/dlls/hidclass.sys/buffer.c
index eccc3ed0c4e..5d15d44ffea 100644
--- a/dlls/hidclass.sys/buffer.c
+++ b/dlls/hidclass.sys/buffer.c
@@ -18,6 +18,7 @@
*/
#include <stdarg.h>
+#include <stdlib.h>
#define NONAMELESSUNION
#include "hid.h"
@@ -50,26 +51,26 @@ struct ReportRingBuffer* RingBuffer_Create(UINT buffer_size)
TRACE("Create Ring Buffer with buffer size %i\n",buffer_size);
- ring = HeapAlloc(GetProcessHeap(), 0, sizeof(*ring));
+ ring = malloc(sizeof(*ring));
if (!ring)
return NULL;
ring->start = ring->end = 0;
ring->size = BASE_BUFFER_SIZE;
ring->buffer_size = buffer_size;
ring->pointer_alloc = 2;
- ring->pointers = HeapAlloc(GetProcessHeap(), 0, sizeof(UINT) * ring->pointer_alloc);
+ ring->pointers = malloc(sizeof(UINT) * ring->pointer_alloc);
if (!ring->pointers)
{
- HeapFree(GetProcessHeap(), 0, ring);
+ free(ring);
return NULL;
}
for (i = 0; i < ring->pointer_alloc; i++)
ring->pointers[i] = POINTER_UNUSED;
- ring->buffer = HeapAlloc(GetProcessHeap(), 0, buffer_size * ring->size);
+ ring->buffer = malloc(buffer_size * ring->size);
if (!ring->buffer)
{
- HeapFree(GetProcessHeap(), 0, ring->pointers);
- HeapFree(GetProcessHeap(), 0, ring);
+ free(ring->pointers);
+ free(ring);
return NULL;
}
InitializeCriticalSection(&ring->lock);
@@ -79,11 +80,11 @@ struct ReportRingBuffer* RingBuffer_Create(UINT buffer_size)
void RingBuffer_Destroy(struct ReportRingBuffer *ring)
{
- HeapFree(GetProcessHeap(), 0, ring->buffer);
- HeapFree(GetProcessHeap(), 0, ring->pointers);
+ free(ring->buffer);
+ free(ring->pointers);
ring->lock.DebugInfo->Spare[0] = 0;
DeleteCriticalSection(&ring->lock);
- HeapFree(GetProcessHeap(), 0, ring);
+ free(ring);
}
UINT RingBuffer_GetBufferSize(struct ReportRingBuffer *ring)
@@ -113,13 +114,13 @@ NTSTATUS RingBuffer_SetSize(struct ReportRingBuffer *ring, UINT size)
if (ring->pointers[i] != POINTER_UNUSED)
ring->pointers[i] = 0;
}
- new_buffer = HeapAlloc(GetProcessHeap(), 0, ring->buffer_size * size);
+ new_buffer = malloc(ring->buffer_size * size);
if (!new_buffer)
{
LeaveCriticalSection(&ring->lock);
return STATUS_NO_MEMORY;
}
- HeapFree(GetProcessHeap(), 0, ring->buffer);
+ free(ring->buffer);
ring->buffer = new_buffer;
ring->size = size;
LeaveCriticalSection(&ring->lock);
diff --git a/dlls/hidclass.sys/descriptor.c b/dlls/hidclass.sys/descriptor.c
index c02988494fd..ab92540994a 100644
--- a/dlls/hidclass.sys/descriptor.c
+++ b/dlls/hidclass.sys/descriptor.c
@@ -507,7 +507,7 @@ static int parse_descriptor(BYTE *descriptor, unsigned int index, unsigned int l
case TAG_MAIN_FEATURE:
for (j = 0; j < caps->ReportCount; j++)
{
- feature = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*feature));
+ feature = calloc(1, sizeof(*feature));
list_add_tail(&collection->features, &feature->entry);
if (bTag == TAG_MAIN_INPUT)
feature->type = HidP_Input;
@@ -532,7 +532,7 @@ static int parse_descriptor(BYTE *descriptor, unsigned int index, unsigned int l
break;
case TAG_MAIN_COLLECTION:
{
- struct collection *subcollection = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct collection));
+ struct collection *subcollection = calloc(1, sizeof(struct collection));
list_add_tail(&collection->collections, &subcollection->entry);
subcollection->parent = collection;
/* Only set our collection once...
@@ -598,7 +598,7 @@ static int parse_descriptor(BYTE *descriptor, unsigned int index, unsigned int l
break;
case TAG_GLOBAL_PUSH:
{
- struct caps_stack *saved = HeapAlloc(GetProcessHeap(), 0, sizeof(*saved));
+ struct caps_stack *saved = malloc(sizeof(*saved));
saved->caps = *caps;
TRACE("Push\n");
list_add_tail(stack, &saved->entry);
@@ -615,7 +615,7 @@ static int parse_descriptor(BYTE *descriptor, unsigned int index, unsigned int l
saved = LIST_ENTRY(tail, struct caps_stack, entry);
*caps = saved->caps;
list_remove(tail);
- HeapFree(GetProcessHeap(), 0, saved);
+ free(saved);
}
else
ERR("Pop but no stack!\n");
@@ -928,7 +928,7 @@ static WINE_HIDP_PREPARSED_DATA* build_PreparseData(struct collection *base_coll
nodes_offset = size;
size += node_count * sizeof(WINE_HID_LINK_COLLECTION_NODE);
- data = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, size);
+ data = calloc(1, size);
data->magic = HID_MAGIC;
data->dwSize = size;
data->caps.Usage = base_collection->caps.u.NotRange.Usage;
@@ -953,9 +953,9 @@ static void free_collection(struct collection *collection)
LIST_FOR_EACH_ENTRY_SAFE(fentry, fnext, &collection->features, struct feature, entry)
{
list_remove(&fentry->entry);
- HeapFree(GetProcessHeap(), 0, fentry);
+ free(fentry);
}
- HeapFree(GetProcessHeap(), 0, collection);
+ free(collection);
}
WINE_HIDP_PREPARSED_DATA* ParseDescriptor(BYTE *descriptor, unsigned int length)
@@ -983,7 +983,7 @@ WINE_HIDP_PREPARSED_DATA* ParseDescriptor(BYTE *descriptor, unsigned int length)
list_init(&caps_stack);
- base = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*base));
+ base = calloc(1, sizeof(*base));
base->index = 1;
list_init(&base->features);
list_init(&base->collections);
@@ -1001,7 +1001,7 @@ WINE_HIDP_PREPARSED_DATA* ParseDescriptor(BYTE *descriptor, unsigned int length)
LIST_FOR_EACH_ENTRY_SAFE(entry, cursor, &caps_stack, struct caps_stack, entry)
{
list_remove(&entry->entry);
- HeapFree(GetProcessHeap(), 0, entry);
+ free(entry);
}
}
diff --git a/dlls/hidclass.sys/device.c b/dlls/hidclass.sys/device.c
index 4d031ffcaa0..e2ca635833d 100644
--- a/dlls/hidclass.sys/device.c
+++ b/dlls/hidclass.sys/device.c
@@ -19,6 +19,7 @@
*/
#include <stdarg.h>
+#include <stdlib.h>
#define NONAMELESSUNION
#define NONAMELESSSTRUCT
#include "hid.h"
@@ -115,7 +116,7 @@ static void hid_device_send_input(DEVICE_OBJECT *device, HID_XFER_PACKET *packet
data_size = offsetof(RAWINPUT, data.hid.bRawData) + packet->reportBufferLen;
if (!(id = ext->u.pdo.preparsed_data->reports[0].reportID)) data_size += 1;
- if (!(rawinput = HeapAlloc(GetProcessHeap(), 0, data_size)))
+ if (!(rawinput = malloc(data_size)))
{
ERR("Failed to allocate rawinput data!\n");
return;
@@ -138,7 +139,7 @@ static void hid_device_send_input(DEVICE_OBJECT *device, HID_XFER_PACKET *packet
input.u.hi.wParamL = 0;
__wine_send_input(0, &input, rawinput);
- HeapFree(GetProcessHeap(), 0, rawinput);
+ free(rawinput);
}
static void HID_Device_processQueue(DEVICE_OBJECT *device)
@@ -148,7 +149,7 @@ static void HID_Device_processQueue(DEVICE_OBJECT *device)
UINT buffer_size = RingBuffer_GetBufferSize(ext->u.pdo.ring_buffer);
HID_XFER_PACKET *packet;
- packet = HeapAlloc(GetProcessHeap(), 0, buffer_size);
+ packet = malloc(buffer_size);
while((irp = pop_irp_from_queue(ext)))
{
@@ -174,7 +175,7 @@ static void HID_Device_processQueue(DEVICE_OBJECT *device)
}
IoCompleteRequest( irp, IO_NO_INCREMENT );
}
- HeapFree(GetProcessHeap(), 0, packet);
+ free(packet);
}
static DWORD CALLBACK hid_device_thread(void *args)
@@ -189,7 +190,7 @@ static DWORD CALLBACK hid_device_thread(void *args)
BASE_DEVICE_EXTENSION *ext = device->DeviceExtension;
USHORT report_size = ext->u.pdo.preparsed_data->caps.InputReportByteLength;
- packet = HeapAlloc(GetProcessHeap(), 0, sizeof(*packet) + report_size);
+ packet = malloc(sizeof(*packet) + report_size);
packet->reportBuffer = (BYTE *)packet + sizeof(*packet);
if (ext->u.pdo.information.Polled)
@@ -347,7 +348,7 @@ static NTSTATUS HID_get_feature(BASE_DEVICE_EXTENSION *ext, IRP *irp)
TRACE_(hid_report)("Device %p Buffer length %i Buffer %p\n", ext, irpsp->Parameters.DeviceIoControl.OutputBufferLength, out_buffer);
len = sizeof(*packet) + irpsp->Parameters.DeviceIoControl.OutputBufferLength;
- packet = HeapAlloc(GetProcessHeap(), 0, len);
+ packet = malloc(len);
packet->reportBufferLen = irpsp->Parameters.DeviceIoControl.OutputBufferLength;
packet->reportBuffer = ((BYTE*)packet) + sizeof(*packet);
packet->reportId = out_buffer[0];
@@ -367,7 +368,7 @@ static NTSTATUS HID_get_feature(BASE_DEVICE_EXTENSION *ext, IRP *irp)
TRACE_(hid_report)("Result 0x%x get %li bytes\n", rc, irp->IoStatus.Information);
- HeapFree(GetProcessHeap(), 0, packet);
+ free(packet);
return rc;
}
@@ -496,7 +497,7 @@ NTSTATUS WINAPI pdo_ioctl(DEVICE_OBJECT *device, IRP *irp)
BYTE *buffer = MmGetSystemAddressForMdlSafe(irp->MdlAddress, NormalPagePriority);
ULONG out_length;
- packet = HeapAlloc(GetProcessHeap(), 0, packet_size);
+ packet = malloc(packet_size);
if (ext->u.pdo.preparsed_data->reports[0].reportID)
packet->reportId = buffer[0];
@@ -514,7 +515,7 @@ NTSTATUS WINAPI pdo_ioctl(DEVICE_OBJECT *device, IRP *irp)
else
irp->IoStatus.Information = 0;
irp->IoStatus.u.Status = rc;
- HeapFree(GetProcessHeap(), 0, packet);
+ free(packet);
break;
}
case IOCTL_SET_NUM_DEVICE_INPUT_BUFFERS:
@@ -578,7 +579,7 @@ NTSTATUS WINAPI pdo_read(DEVICE_OBJECT *device, IRP *irp)
IO_STACK_LOCATION *irpsp = IoGetCurrentIrpStackLocation(irp);
int ptr = -1;
- packet = HeapAlloc(GetProcessHeap(), 0, buffer_size);
+ packet = malloc(buffer_size);
ptr = PtrToUlong( irp->Tail.Overlay.OriginalFileObject->FsContext );
irp->IoStatus.Information = 0;
@@ -639,7 +640,7 @@ NTSTATUS WINAPI pdo_read(DEVICE_OBJECT *device, IRP *irp)
IoCompleteRequest(irp, IO_NO_INCREMENT);
}
}
- HeapFree(GetProcessHeap(), 0, packet);
+ free(packet);
return rc;
}
diff --git a/dlls/hidclass.sys/pnp.c b/dlls/hidclass.sys/pnp.c
index b5862a01593..f372f8ffdf5 100644
--- a/dlls/hidclass.sys/pnp.c
+++ b/dlls/hidclass.sys/pnp.c
@@ -21,6 +21,7 @@
#define NONAMELESSUNION
#include <unistd.h>
#include <stdarg.h>
+#include <stdlib.h>
#include "initguid.h"
#include "hid.h"
#include "devguid.h"
@@ -239,19 +240,19 @@ static void create_child(minidriver *minidriver, DEVICE_OBJECT *fdo)
return;
}
- reportDescriptor = HeapAlloc(GetProcessHeap(), 0, descriptor.DescriptorList[i].wReportLength);
+ reportDescriptor = malloc(descriptor.DescriptorList[i].wReportLength);
status = call_minidriver(IOCTL_HID_GET_REPORT_DESCRIPTOR, fdo, NULL, 0,
reportDescriptor, descriptor.DescriptorList[i].wReportLength);
if (status != STATUS_SUCCESS)
{
ERR("Cannot get Report Descriptor(%x)\n",status);
- HeapFree(GetProcessHeap(), 0, reportDescriptor);
+ free(reportDescriptor);
IoDeleteDevice(child_pdo);
return;
}
pdo_ext->u.pdo.preparsed_data = ParseDescriptor(reportDescriptor, descriptor.DescriptorList[i].wReportLength);
- HeapFree(GetProcessHeap(), 0, reportDescriptor);
+ free(reportDescriptor);
if (!pdo_ext->u.pdo.preparsed_data)
{
ERR("Cannot parse Report Descriptor\n");
@@ -475,7 +476,7 @@ static NTSTATUS pdo_pnp(DEVICE_OBJECT *device, IRP *irp)
}
CloseHandle(ext->u.pdo.halt_event);
- HeapFree(GetProcessHeap(), 0, ext->u.pdo.preparsed_data);
+ free(ext->u.pdo.preparsed_data);
if (ext->u.pdo.ring_buffer)
RingBuffer_Destroy(ext->u.pdo.ring_buffer);
@@ -561,7 +562,7 @@ static void WINAPI driver_unload(DRIVER_OBJECT *driver)
if (md->DriverUnload)
md->DriverUnload(md->minidriver.DriverObject);
list_remove(&md->entry);
- HeapFree(GetProcessHeap(), 0, md);
+ free(md);
}
}
@@ -569,7 +570,7 @@ NTSTATUS WINAPI HidRegisterMinidriver(HID_MINIDRIVER_REGISTRATION *registration)
{
minidriver *driver;
- if (!(driver = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*driver))))
+ if (!(driver = calloc(1, sizeof(*driver))))
return STATUS_NO_MEMORY;
driver->DriverUnload = registration->DriverObject->DriverUnload;
--
2.31.0