offset from code base address, not data base address
authortwall <twall>
Sun, 3 Feb 2008 01:12:32 +0000 (01:12 +0000)
committertwall <twall>
Sun, 3 Feb 2008 01:12:32 +0000 (01:12 +0000)
libffi/src/x86/ffi.c

index 886a2e0..243a406 100644 (file)
@@ -325,7 +325,7 @@ ffi_prep_incoming_args_SYSV(char *stack, void **rvalue, void **avalue,
 ({ unsigned char *__tramp = (unsigned char*)(TRAMP); \
    unsigned int  __fun = (unsigned int)(FUN); \
    unsigned int  __ctx = (unsigned int)(CTX); \
-   unsigned int  __dis = __fun - ((unsigned int) __tramp + 10); \
+   unsigned int  __dis = __fun - (__ctx + 10); \
    unsigned short __size = (unsigned short)(SIZE); \
    *(unsigned char*) &__tramp[0] = 0xb8; \
    *(unsigned int*)  &__tramp[1] = __ctx; /* movl __ctx, %eax */ \