forked from cory/tildefriends
Use a custom allocator for everything.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3892 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
@ -1,8 +1,9 @@
|
||||
#include "packetstream.h"
|
||||
|
||||
#include "mem.h"
|
||||
|
||||
#include <uv.h>
|
||||
|
||||
#include <malloc.h>
|
||||
#include <stdbool.h>
|
||||
#include <string.h>
|
||||
|
||||
@ -18,7 +19,7 @@ typedef struct _tf_packetstream_t {
|
||||
|
||||
tf_packetstream_t* tf_packetstream_create()
|
||||
{
|
||||
tf_packetstream_t* impl = malloc(sizeof(tf_packetstream_t));
|
||||
tf_packetstream_t* impl = tf_malloc(sizeof(tf_packetstream_t));
|
||||
*impl = (tf_packetstream_t) { 0 };
|
||||
return impl;
|
||||
}
|
||||
@ -30,7 +31,7 @@ void tf_packetstream_destroy(tf_packetstream_t* stream)
|
||||
stream->destroyed = true;
|
||||
if (stream->buffer)
|
||||
{
|
||||
free(stream->buffer);
|
||||
tf_free(stream->buffer);
|
||||
stream->buffer = NULL;
|
||||
}
|
||||
if (stream->stream.data)
|
||||
@ -39,13 +40,13 @@ void tf_packetstream_destroy(tf_packetstream_t* stream)
|
||||
}
|
||||
else
|
||||
{
|
||||
free(stream);
|
||||
tf_free(stream);
|
||||
}
|
||||
}
|
||||
|
||||
static void _packetstream_allocate(uv_handle_t* handle, size_t suggested_size, uv_buf_t* buffer)
|
||||
{
|
||||
buffer->base = malloc(suggested_size);
|
||||
buffer->base = tf_malloc(suggested_size);
|
||||
buffer->len = suggested_size;
|
||||
}
|
||||
|
||||
@ -93,7 +94,7 @@ static void _packetstream_on_read(uv_stream_t* handle, ssize_t count, const uv_b
|
||||
{
|
||||
stream->buffer_capacity *= 2;
|
||||
}
|
||||
write_buffer = realloc(write_buffer, stream->buffer_capacity);
|
||||
write_buffer = tf_realloc(write_buffer, stream->buffer_capacity);
|
||||
}
|
||||
if (write_buffer)
|
||||
{
|
||||
@ -108,7 +109,7 @@ static void _packetstream_on_read(uv_stream_t* handle, ssize_t count, const uv_b
|
||||
{
|
||||
tf_packetstream_close(stream);
|
||||
}
|
||||
free(buffer->base);
|
||||
tf_free(buffer->base);
|
||||
}
|
||||
|
||||
void tf_packetstream_start(tf_packetstream_t* stream)
|
||||
@ -119,13 +120,13 @@ void tf_packetstream_start(tf_packetstream_t* stream)
|
||||
|
||||
static void _packetstream_on_write(uv_write_t* request, int status)
|
||||
{
|
||||
free(request);
|
||||
tf_free(request);
|
||||
}
|
||||
|
||||
void tf_packetstream_send(tf_packetstream_t* stream, int packet_type, const char* begin, size_t length)
|
||||
{
|
||||
size_t buffer_length = sizeof(uv_write_t) + sizeof(packet_type) + sizeof(length) + length;
|
||||
uv_write_t* request = malloc(buffer_length);
|
||||
uv_write_t* request = tf_malloc(buffer_length);
|
||||
memset(request, 0, sizeof(uv_write_t));
|
||||
char* buffer = (char*)(request + 1);
|
||||
memcpy(buffer, &packet_type, sizeof(packet_type));
|
||||
@ -152,12 +153,12 @@ static void _tf_packetstream_handle_closed(uv_handle_t* handle)
|
||||
handle->data = NULL;
|
||||
if (packetstream->buffer)
|
||||
{
|
||||
free(packetstream->buffer);
|
||||
tf_free(packetstream->buffer);
|
||||
packetstream->buffer = NULL;
|
||||
}
|
||||
if (packetstream->destroyed)
|
||||
{
|
||||
free(packetstream);
|
||||
tf_free(packetstream);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user