From ab74876131f55a954cf867672d678a005208ce7c Mon Sep 17 00:00:00 2001 From: Jan Nieuwenhuizen Date: Thu, 27 Jul 2017 18:51:58 +0200 Subject: [PATCH] mescc: Tinycc support: malloc,memcpy. * mlibc/libc-mes.c (malloc): Rewrite. * mlibc/libc-mes+tcc.c (memcpy): Implement. --- mlibc/libc-mes+tcc.c | 5 ++++- mlibc/libc-mes.c | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/mlibc/libc-mes+tcc.c b/mlibc/libc-mes+tcc.c index 272e4605..0ada0c1d 100644 --- a/mlibc/libc-mes+tcc.c +++ b/mlibc/libc-mes+tcc.c @@ -148,7 +148,10 @@ longjmp (jmp_buf env, int val) void * memcpy (void *dest, void const *src, size_t n) { - return 0; + char* p = dest; + char* q = src; + while (n--) *p++ = *q++; + return dest; } void * diff --git a/mlibc/libc-mes.c b/mlibc/libc-mes.c index 1a60215f..a81727a9 100644 --- a/mlibc/libc-mes.c +++ b/mlibc/libc-mes.c @@ -311,10 +311,11 @@ char *g_brk = 0; void * malloc (size_t size) { - if (!g_brk) g_brk = brk (0); + if (!g_brk) + g_brk = brk (0); + if (brk (g_brk + size) == -1) + return 0; char *p = g_brk; - if (size < 0 || brk (g_brk + size) == -1) - return 0; g_brk += size; return p; }