=== src/jit/i386/jit_defs.c
==================================================================
|
|
|
|
| 2288 | 2288 | case '2': |
| 2289 | 2289 | case '3': |
| 2290 | 2290 | case '4': |
| 2291 | | mem_free_executable(jit_info.native_ptr); |
| | 2291 | mem_free_executable(jit_info.native_ptr, JIT_ALLOC_SIZE); |
| 2292 | 2292 | return NULL; |
| 2293 | 2293 | break; |
| 2294 | 2294 | /* This might be right. Or not... */ |
| … |
… |
|
| 2305 | 2305 | * oops unknown signature: |
| 2306 | 2306 | * cleanup and try nci.c |
| 2307 | 2307 | */ |
| 2308 | | mem_free_executable(jit_info.native_ptr); |
| | 2308 | mem_free_executable(jit_info.native_ptr, JIT_ALLOC_SIZE); |
| 2309 | 2309 | return NULL; |
| 2310 | 2310 | } |
| 2311 | 2311 | args_offset +=4; |
| … |
… |
|
| 2432 | 2432 | * oops unknown signature: |
| 2433 | 2433 | * cleanup and try nci.c |
| 2434 | 2434 | */ |
| 2435 | | mem_free_executable(jit_info.native_ptr); |
| | 2435 | mem_free_executable(jit_info.native_ptr, JIT_ALLOC_SIZE); |
| 2436 | 2436 | return NULL; |
| 2437 | 2437 | } |
| 2438 | 2438 | |
=== src/jit.c
==================================================================
|
|
|
|
| 1257 | 1257 | } |
| 1258 | 1258 | /* arena stuff */ |
| 1259 | 1259 | mem_sys_free(jit_info->arena.op_map); |
| 1260 | | mem_free_executable(jit_info->arena.start); |
| | 1260 | mem_free_executable(jit_info->arena.start, jit_info->arena.size); |
| 1261 | 1261 | fixup = jit_info->arena.fixups; |
| 1262 | 1262 | while (fixup) { |
| 1263 | 1263 | next_f = fixup->next; |
| … |
… |
|
| 1525 | 1525 | Parrot_jit_extend_arena(jit_info); |
| 1526 | 1526 | #else |
| 1527 | 1527 | new_arena = (char *)mem_realloc_executable(jit_info->arena.start, |
| 1528 | | (size_t)jit_info->arena.size * 2); |
| | 1528 | jit_info->arena.size, (size_t)jit_info->arena.size * 2); |
| 1529 | 1529 | jit_info->arena.size *= 2; |
| 1530 | 1530 | jit_info->native_ptr = new_arena + |
| 1531 | 1531 | (jit_info->native_ptr - jit_info->arena.start); |
=== config/gen/platform/openbsd/memexec.c
==================================================================
|
|
|
|
| 49 | 49 | |
| 50 | 50 | /* |
| 51 | 51 | |
| 52 | | =item C<void mem_free_executable(void *p)> |
| | 52 | =item C<void mem_free_executable(void *p, size_t size)> |
| 53 | 53 | |
| | 54 | Free a buffer allocated with mem_alloc_executable(). |
| | 55 | |
| 54 | 56 | =cut |
| 55 | 57 | |
| 56 | 58 | */ |
| 57 | 59 | |
| 58 | 60 | void |
| 59 | | mem_free_executable(void *p) |
| | 61 | mem_free_executable(void *p, size_t size) |
| 60 | 62 | { |
| 61 | 63 | free(p); |
| 62 | 64 | } |
=== config/gen/platform/platform_interface.h
==================================================================
|
|
|
|
| 40 | 40 | |
| 41 | 41 | #ifdef PARROT_HAS_EXEC_PROTECT |
| 42 | 42 | void *mem_alloc_executable(size_t); |
| 43 | | void mem_free_executable(void *); |
| 44 | | void *mem_realloc_executable(void *, size_t); |
| | 43 | void mem_free_executable(void *, size_t); |
| | 44 | void *mem_realloc_executable(void *, size_t, size_t); |
| 45 | 45 | #else |
| 46 | 46 | # define mem_alloc_executable mem_sys_allocate |
| 47 | | # define mem_free_executable mem_sys_free |
| 48 | | # define mem_realloc_executable mem_sys_realloc |
| | 47 | # define mem_free_executable(a,b) mem_sys_free(a) |
| | 48 | # define mem_realloc_executable(a,b,c) mem_sys_realloc((a),(c)) |
| 49 | 49 | #endif |
| 50 | 50 | |
| 51 | 51 | void* Parrot_memcpy_aligned(void*, void*, size_t); |
=== config/gen/platform/generic/memexec.c
==================================================================
|
|
|
|
| 47 | 47 | |
| 48 | 48 | /* |
| 49 | 49 | |
| 50 | | =item C<void mem_free_executable(void *p)> |
| | 50 | =item C<void mem_free_executable(void *p, size_t)> |
| 51 | 51 | |
| | 52 | Free a buffer allocated with mem_alloc_executable(). |
| | 53 | |
| 52 | 54 | =cut |
| 53 | 55 | |
| 54 | 56 | */ |
| 55 | 57 | |
| 56 | 58 | void |
| 57 | | mem_free_executable(void *p) |
| | 59 | mem_free_executable(void *p, size_t size) |
| 58 | 60 | { |
| 59 | 61 | free(p); |
| 60 | 62 | } |
| … |
… |
|
| 72 | 74 | */ |
| 73 | 75 | |
| 74 | 76 | void * |
| 75 | | mem_realloc_executable(void* oldp, size_t newsize) |
| | 77 | mem_realloc_executable(void* oldp, size_t oldsize, size_t newsize) |
| 76 | 78 | { |
| 77 | 79 | void *temp; |
| 78 | 80 | void *newp; |