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,4 +1,6 @@
|
||||
#include "socket.js.h"
|
||||
|
||||
#include "mem.h"
|
||||
#include "task.h"
|
||||
#include "tls.h"
|
||||
#include "tlscontext.js.h"
|
||||
@ -150,7 +152,7 @@ typedef struct _socket_resolve_data_t {
|
||||
|
||||
socket_t* _socket_create_internal(JSContext* context)
|
||||
{
|
||||
socket_t* socket = malloc(sizeof(socket_t));
|
||||
socket_t* socket = tf_malloc(sizeof(socket_t));
|
||||
memset(socket, 0, sizeof(*socket));
|
||||
|
||||
socket->_closePromise = -1;
|
||||
@ -228,7 +230,7 @@ void _socket_close_internal(socket_t* socket)
|
||||
JS_IsUndefined(socket->_object))
|
||||
{
|
||||
--_count;
|
||||
free(socket);
|
||||
tf_free(socket);
|
||||
}
|
||||
}
|
||||
|
||||
@ -345,7 +347,7 @@ bool _socket_processSomeOutgoingTls(socket_t* socket, promiseid_t promise, uv_wr
|
||||
int result = tf_tls_session_read_encrypted(socket->_tls, buffer, sizeof(buffer));
|
||||
if (result > 0)
|
||||
{
|
||||
char* request_buffer = malloc(sizeof(uv_write_t) + result);
|
||||
char* request_buffer = tf_malloc(sizeof(uv_write_t) + result);
|
||||
uv_write_t* request = (uv_write_t*)request_buffer;
|
||||
memset(request, 0, sizeof(*request));
|
||||
request->data = (void*)(intptr_t)(promise);
|
||||
@ -361,7 +363,7 @@ bool _socket_processSomeOutgoingTls(socket_t* socket, promiseid_t promise, uv_wr
|
||||
int writeResult = uv_write(request, (uv_stream_t*)&socket->_socket, &writeBuffer, 1, callback);
|
||||
if (writeResult != 0)
|
||||
{
|
||||
free(request_buffer);
|
||||
tf_free(request_buffer);
|
||||
char error[256];
|
||||
snprintf(error, sizeof(error), "uv_write: %s", uv_strerror(writeResult));
|
||||
_socket_reportError(socket, error);
|
||||
@ -387,7 +389,7 @@ JSValue _socket_bind(JSContext* context, JSValueConst this_val, int argc, JSValu
|
||||
const char* node = JS_ToCString(tf_task_get_context(socket->_task), argv[0]);
|
||||
const char* port = JS_ToCString(tf_task_get_context(socket->_task), argv[1]);
|
||||
|
||||
socket_resolve_data_t* data = malloc(sizeof(socket_resolve_data_t));
|
||||
socket_resolve_data_t* data = tf_malloc(sizeof(socket_resolve_data_t));
|
||||
memset(data, 0, sizeof(*data));
|
||||
struct addrinfo hints = {
|
||||
.ai_family = PF_INET,
|
||||
@ -404,7 +406,7 @@ JSValue _socket_bind(JSContext* context, JSValueConst this_val, int argc, JSValu
|
||||
char error[256];
|
||||
snprintf(error, sizeof(error), "uv_getaddrinfo: %s", uv_strerror(result));
|
||||
tf_task_reject_promise(socket->_task, data->promise, JS_ThrowInternalError(tf_task_get_context(socket->_task), error));
|
||||
free(data);
|
||||
tf_free(data);
|
||||
}
|
||||
return promise;
|
||||
}
|
||||
@ -432,7 +434,7 @@ void _socket_onResolvedForBind(uv_getaddrinfo_t* resolver, int status, struct ad
|
||||
tf_task_resolve_promise(data->socket->_task, data->promise, JS_UNDEFINED);
|
||||
}
|
||||
}
|
||||
free(data);
|
||||
tf_free(data);
|
||||
}
|
||||
|
||||
JSValue _socket_connect(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
||||
@ -444,7 +446,7 @@ JSValue _socket_connect(JSContext* context, JSValueConst this_val, int argc, JSV
|
||||
|
||||
strncpy(socket->_peerName, node, sizeof(socket->_peerName) - 1);
|
||||
|
||||
socket_resolve_data_t* data = malloc(sizeof(socket_resolve_data_t));
|
||||
socket_resolve_data_t* data = tf_malloc(sizeof(socket_resolve_data_t));
|
||||
memset(data, 0, sizeof(*data));
|
||||
struct addrinfo hints = {
|
||||
.ai_family = PF_INET,
|
||||
@ -460,7 +462,7 @@ JSValue _socket_connect(JSContext* context, JSValueConst this_val, int argc, JSV
|
||||
char error[256];
|
||||
snprintf(error, sizeof(error), "uv_getaddrinfo: %s", uv_strerror(result));
|
||||
tf_task_reject_promise(socket->_task, data->promise, JS_ThrowInternalError(context, "%s", error));
|
||||
free(data);
|
||||
tf_free(data);
|
||||
}
|
||||
|
||||
JS_FreeCString(context, node);
|
||||
@ -479,7 +481,7 @@ void _socket_onResolvedForConnect(uv_getaddrinfo_t* resolver, int status, struct
|
||||
}
|
||||
else
|
||||
{
|
||||
uv_connect_t* request = malloc(sizeof(uv_connect_t));
|
||||
uv_connect_t* request = tf_malloc(sizeof(uv_connect_t));
|
||||
memset(request, 0, sizeof(*request));
|
||||
request->data = (void*)(intptr_t)data->promise;
|
||||
int connectResult = uv_tcp_connect(request, &data->socket->_socket, result->ai_addr, _socket_onConnect);
|
||||
@ -491,7 +493,7 @@ void _socket_onResolvedForConnect(uv_getaddrinfo_t* resolver, int status, struct
|
||||
}
|
||||
}
|
||||
uv_freeaddrinfo(result);
|
||||
free(data);
|
||||
tf_free(data);
|
||||
}
|
||||
|
||||
void _socket_onConnect(uv_connect_t* request, int status)
|
||||
@ -512,7 +514,7 @@ void _socket_onConnect(uv_connect_t* request, int status)
|
||||
tf_task_reject_promise(socket->_task, promise, JS_ThrowInternalError(tf_task_get_context(socket->_task), "%s", error));
|
||||
}
|
||||
}
|
||||
free(request);
|
||||
tf_free(request);
|
||||
}
|
||||
|
||||
JSValue _socket_listen(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
||||
@ -607,7 +609,7 @@ JSValue _socket_shutdown(JSContext* context, JSValueConst this_val, int argc, JS
|
||||
|
||||
void _socket_shutdownInternal(socket_t* socket, promiseid_t promise)
|
||||
{
|
||||
uv_shutdown_t* request = malloc(sizeof(uv_shutdown_t));
|
||||
uv_shutdown_t* request = tf_malloc(sizeof(uv_shutdown_t));
|
||||
memset(request, 0, sizeof(*request));
|
||||
request->data = (void*)(intptr_t)promise;
|
||||
int result = uv_shutdown(request, (uv_stream_t*)&socket->_socket, _socket_onShutdown);
|
||||
@ -616,7 +618,7 @@ void _socket_shutdownInternal(socket_t* socket, promiseid_t promise)
|
||||
char error[256];
|
||||
snprintf(error, sizeof(error), "uv_shutdown: %s", uv_strerror(result));
|
||||
tf_task_reject_promise(socket->_task, promise, JS_ThrowInternalError(tf_task_get_context(socket->_task), "%s", error));
|
||||
free(request);
|
||||
tf_free(request);
|
||||
}
|
||||
}
|
||||
|
||||
@ -641,7 +643,7 @@ void _socket_onTlsShutdown(uv_write_t* request, int status)
|
||||
socket_t* socket = request->handle->data;
|
||||
promiseid_t promise = (intptr_t)request->data;
|
||||
_socket_processTlsShutdown(socket, promise);
|
||||
free(request);
|
||||
tf_free(request);
|
||||
}
|
||||
|
||||
JSValue _socket_onError(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
||||
@ -684,7 +686,7 @@ JSValue _socket_read(JSContext* context, JSValueConst this_val, int argc, JSValu
|
||||
|
||||
void _socket_allocateBuffer(uv_handle_t* handle, size_t suggestedSize, uv_buf_t* buf)
|
||||
{
|
||||
*buf = uv_buf_init(malloc(suggestedSize), suggestedSize);
|
||||
*buf = uv_buf_init(tf_malloc(suggestedSize), suggestedSize);
|
||||
}
|
||||
|
||||
void _socket_onRead(uv_stream_t* stream, ssize_t readSize, const uv_buf_t* buffer)
|
||||
@ -777,7 +779,7 @@ void _socket_onRead(uv_stream_t* stream, ssize_t readSize, const uv_buf_t* buffe
|
||||
_socket_notifyDataRead(socket, buffer->base, readSize);
|
||||
}
|
||||
}
|
||||
free(buffer->base);
|
||||
tf_free(buffer->base);
|
||||
JS_FreeValue(context, ref);
|
||||
}
|
||||
|
||||
@ -851,7 +853,7 @@ int _socket_writeBytes(socket_t* socket, promiseid_t promise, int (*callback)(so
|
||||
|
||||
int _socket_writeInternal(socket_t* socket, promiseid_t promise, const char* data, size_t length)
|
||||
{
|
||||
char* rawBuffer = malloc(sizeof(uv_write_t) + length);
|
||||
char* rawBuffer = tf_malloc(sizeof(uv_write_t) + length);
|
||||
uv_write_t* request = (uv_write_t*)rawBuffer;
|
||||
memcpy(rawBuffer + sizeof(uv_write_t), data, length);
|
||||
|
||||
@ -933,7 +935,7 @@ void _socket_onWrite(uv_write_t* request, int status)
|
||||
tf_task_reject_promise(socket->_task, promise, JS_ThrowInternalError(tf_task_get_context(socket->_task), error));
|
||||
}
|
||||
}
|
||||
free(request);
|
||||
tf_free(request);
|
||||
}
|
||||
|
||||
JSValue _socket_isConnected(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
||||
@ -978,7 +980,7 @@ void _socket_onShutdown(uv_shutdown_t* request, int status)
|
||||
snprintf(error, sizeof(error), "uv_shutdown: %s", uv_strerror(status));
|
||||
tf_task_reject_promise(socket->_task, promise, JS_ThrowInternalError(tf_task_get_context(socket->_task), "%s", error));
|
||||
}
|
||||
free(request);
|
||||
tf_free(request);
|
||||
}
|
||||
|
||||
JSValue _socket_getPeerName(JSContext* context, JSValueConst this_val, int argc, JSValueConst* argv)
|
||||
|
Reference in New Issue
Block a user