From 67a272b71596ebd0a9325f519f3bf78b8195f95c Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Tue, 23 Apr 2019 11:12:37 +0200 Subject: [PATCH] vm/mm.c: convert check_bounds to a macro. --- vm/mm.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/vm/mm.c b/vm/mm.c index cef8735..9d1c7df 100644 --- a/vm/mm.c +++ b/vm/mm.c @@ -31,13 +31,12 @@ int16_t* base_addr = NULL; uint8_t *memory = NULL; -static void check_bounds(uint16_t addr) { - - if (addr > MEM_SIZE) { - fprintf(stderr, EXCEPTION_STRING, addr); - exit(1); +#define __check_bounds(addr) \ + if ((addr) > MEM_SIZE) { \ + fprintf(stderr, EXCEPTION_STRING, addr);\ + exit(1); \ } -} + void mm_init() { @@ -56,14 +55,14 @@ void mm_exit() { void mm_sw(uint16_t addr, int16_t value) { - check_bounds(addr); + __check_bounds(addr); base_addr[addr] = value; } int16_t mm_lw(uint16_t addr) { - check_bounds(addr); + __check_bounds(addr); return base_addr[addr]; }