Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : ghc-7.2

http://hackage.haskell.org/trac/ghc/changeset/f76b47f3e9e086a6204561bc22da5e1f503fa00d

>---------------------------------------------------------------

commit f76b47f3e9e086a6204561bc22da5e1f503fa00d
Author: Simon Marlow <[email protected]>
Date:   Thu Jun 30 15:50:19 2011 +0100

    update freeHaskellFuncationPtr following changes to x86 adjustors
    (fixes various ffi test failures on x86.  This change was supposed to
    be part of 9f61598ce7b0cb3448e8f0c3d627c0ca47b7f55f, but somehow it
    got lost).

>---------------------------------------------------------------

 rts/Adjustor.c |   16 ++++------------
 1 files changed, 4 insertions(+), 12 deletions(-)

diff --git a/rts/Adjustor.c b/rts/Adjustor.c
index 0d58293..038c649 100644
--- a/rts/Adjustor.c
+++ b/rts/Adjustor.c
@@ -1067,25 +1067,17 @@ TODO: Depending on how much allocation overhead 
stgMallocBytes uses for
 void
 freeHaskellFunctionPtr(void* ptr)
 {
-#if defined(i386_HOST_ARCH) && !defined(darwin_HOST_OS)
- if ( *(unsigned char*)ptr != 0x68 &&
+#if defined(i386_HOST_ARCH)
+ if ( *(unsigned char*)ptr != 0xe8 &&
       *(unsigned char*)ptr != 0x58 ) {
    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
    return;
  }
-
- /* Free the stable pointer first..*/
- if (*(unsigned char*)ptr == 0x68) { /* Aha, a ccall adjustor! */
-    freeStablePtr(*((StgStablePtr*)((unsigned char*)ptr + 0x01)));
+ if (*(unsigned char*)ptr == 0xe8) { /* Aha, a ccall adjustor! */
+     freeStablePtr(((AdjustorStub*)ptr)->hptr);
  } else {
     freeStablePtr(*((StgStablePtr*)((unsigned char*)ptr + 0x02)));
  }
-#elif defined(i386_HOST_ARCH) && defined(darwin_HOST_OS)
-if ( *(unsigned char*)ptr != 0xe8 ) {
-   errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
-   return;
- }
- freeStablePtr(((AdjustorStub*)ptr)->hptr);
 #elif defined(x86_64_HOST_ARCH)
  if ( *(StgWord16 *)ptr == 0x894d ) {
      freeStablePtr(*(StgStablePtr*)((StgWord8*)ptr+0x20));



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to