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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/89e319cbd0dc6e087c137d0852e5a887fdaa4be4

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

commit 89e319cbd0dc6e087c137d0852e5a887fdaa4be4
Author: Ian Lynagh <[email protected]>
Date:   Thu May 17 23:03:26 2012 +0100

    Fix freeHaskellFunctionPtr on Win64

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

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

diff --git a/rts/Adjustor.c b/rts/Adjustor.c
index a8bf2a2..7afdb5f 100644
--- a/rts/Adjustor.c
+++ b/rts/Adjustor.c
@@ -1194,9 +1194,21 @@ freeHaskellFunctionPtr(void* ptr)
  }
 #elif defined(x86_64_HOST_ARCH)
  if ( *(StgWord16 *)ptr == 0x894d ) {
-     freeStablePtr(*(StgStablePtr*)((StgWord8*)ptr+0x20));
+     freeStablePtr(*(StgStablePtr*)((StgWord8*)ptr+
+#if defined(mingw32_HOST_OS)
+                                                   0x28
+#else
+                                                   0x20
+#endif
+                                                       ));
  } else if ( *(StgWord16 *)ptr == 0x5141 ) {
-     freeStablePtr(*(StgStablePtr*)((StgWord8*)ptr+0x30));
+     freeStablePtr(*(StgStablePtr*)((StgWord8*)ptr+
+#if defined(mingw32_HOST_OS)
+                                                   0x38
+#else
+                                                   0x30
+#endif
+                                                       ));
  } else {
    errorBelch("freeHaskellFunctionPtr: not for me, guv! %p\n", ptr);
    return;



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

Reply via email to