
#7718: ios patch no 8: adjustor pools --------------------------------+------------------------------------------- Reporter: StephenBlackheath | Owner: Type: feature request | Status: patch Priority: normal | Milestone: 7.8.1 Component: Compiler | Version: 7.7 Resolution: | Keywords: Os: Other | Architecture: arm Failure: None/Unknown | Difficulty: Unknown Testcase: | Blockedby: Blocking: 7724 | Related: --------------------------------+------------------------------------------- Comment(by igloo): Here's the Linux code: {{{ void *allocateExec (W_ bytes, void **exec_ret) { void **ret, **exec; ACQUIRE_SM_LOCK; ret = ffi_closure_alloc (sizeof(void *) + (size_t)bytes, (void**)&exec); RELEASE_SM_LOCK; if (ret == NULL) return ret; *ret = ret; // save the address of the writable mapping, for freeExec(). *exec_ret = exec + 1; return (ret + 1); } }}} Note that it puts the writable address at the start of the memory allocated, so `freeExec` can find it: {{{ void freeExec (void *addr) { void *writable; writable = *((void**)addr - 1); }}} Doesn't this do what you use the hash table for? -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7718#comment:16 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler