summaryrefslogtreecommitdiffstats
path: root/fastwriter.c
diff options
context:
space:
mode:
Diffstat (limited to 'fastwriter.c')
-rw-r--r--fastwriter.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/fastwriter.c b/fastwriter.c
index e812681..08722fa 100644
--- a/fastwriter.c
+++ b/fastwriter.c
@@ -15,11 +15,17 @@
#include <fcntl.h>
-
#include "private.h"
#include "default.h"
#include "sysinfo.h"
+#ifdef USE_CUSTOM_MEMCPY
+# include "memcpy.h"
+#else /* USE_CUSTOM_MEMCPY */
+# define fast_memcpy memcpy
+#endif /* USE_CUSTOM_MEMCPY */
+
+
fastwriter_t *fastwriter_init(const char *fs, fastwriter_flags_t flags) {
fastwriter_t *ctx;
@@ -275,11 +281,11 @@ int fastwriter_push(fastwriter_t *ctx, size_t size, const void *data) {
if (part1 < size) {
// tail < pos (we have checked for free space)
end = size - part1;
- memcpy(ctx->buffer + ctx->pos, data, part1);
- memcpy(ctx->buffer, data + part1, end);
+ fast_memcpy(ctx->buffer + ctx->pos, data, part1);
+ fast_memcpy(ctx->buffer, data + part1, end);
ctx->pos = end;
} else {
- memcpy(ctx->buffer + ctx->pos, data, size);
+ fast_memcpy(ctx->buffer + ctx->pos, data, size);
ctx->pos += size;
if (ctx->pos == ctx->size) ctx->pos = 0;