=== src/jit/i386/jit_defs.c ================================================================== --- src/jit/i386/jit_defs.c (revision 81) +++ src/jit/i386/jit_defs.c (revision 82) @@ -2288,7 +2288,7 @@ case '2': case '3': case '4': - mem_free_executable(jit_info.native_ptr); + mem_free_executable(jit_info.native_ptr, JIT_ALLOC_SIZE); return NULL; break; /* This might be right. Or not... */ @@ -2305,7 +2305,7 @@ * oops unknown signature: * cleanup and try nci.c */ - mem_free_executable(jit_info.native_ptr); + mem_free_executable(jit_info.native_ptr, JIT_ALLOC_SIZE); return NULL; } args_offset +=4; @@ -2432,7 +2432,7 @@ * oops unknown signature: * cleanup and try nci.c */ - mem_free_executable(jit_info.native_ptr); + mem_free_executable(jit_info.native_ptr, JIT_ALLOC_SIZE); return NULL; } === src/jit.c ================================================================== --- src/jit.c (revision 81) +++ src/jit.c (revision 82) @@ -1257,7 +1257,7 @@ } /* arena stuff */ mem_sys_free(jit_info->arena.op_map); - mem_free_executable(jit_info->arena.start); + mem_free_executable(jit_info->arena.start, jit_info->arena.size); fixup = jit_info->arena.fixups; while (fixup) { next_f = fixup->next; @@ -1525,7 +1525,7 @@ Parrot_jit_extend_arena(jit_info); #else new_arena = (char *)mem_realloc_executable(jit_info->arena.start, - (size_t)jit_info->arena.size * 2); + jit_info->arena.size, (size_t)jit_info->arena.size * 2); jit_info->arena.size *= 2; jit_info->native_ptr = new_arena + (jit_info->native_ptr - jit_info->arena.start); === config/gen/platform/openbsd/memexec.c ================================================================== --- config/gen/platform/openbsd/memexec.c (revision 81) +++ config/gen/platform/openbsd/memexec.c (revision 82) @@ -49,14 +49,16 @@ /* -=item C +=item C +Free a buffer allocated with mem_alloc_executable(). + =cut */ void -mem_free_executable(void *p) +mem_free_executable(void *p, size_t size) { free(p); } === config/gen/platform/platform_interface.h ================================================================== --- config/gen/platform/platform_interface.h (revision 81) +++ config/gen/platform/platform_interface.h (revision 82) @@ -40,12 +40,12 @@ #ifdef PARROT_HAS_EXEC_PROTECT void *mem_alloc_executable(size_t); -void mem_free_executable(void *); -void *mem_realloc_executable(void *, size_t); +void mem_free_executable(void *, size_t); +void *mem_realloc_executable(void *, size_t, size_t); #else # define mem_alloc_executable mem_sys_allocate -# define mem_free_executable mem_sys_free -# define mem_realloc_executable mem_sys_realloc +# define mem_free_executable(a,b) mem_sys_free(a) +# define mem_realloc_executable(a,b,c) mem_sys_realloc((a),(c)) #endif void* Parrot_memcpy_aligned(void*, void*, size_t); === config/gen/platform/generic/memexec.c ================================================================== --- config/gen/platform/generic/memexec.c (revision 81) +++ config/gen/platform/generic/memexec.c (revision 82) @@ -47,14 +47,16 @@ /* -=item C +=item C +Free a buffer allocated with mem_alloc_executable(). + =cut */ void -mem_free_executable(void *p) +mem_free_executable(void *p, size_t size) { free(p); } @@ -72,7 +74,7 @@ */ void * -mem_realloc_executable(void* oldp, size_t newsize) +mem_realloc_executable(void* oldp, size_t oldsize, size_t newsize) { void *temp; void *newp;