[Mono-bugs] [Bug 82387][Nor] Changed - P/Invoke partially not working on Mac OS X

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Aug 10 14:15:24 EDT 2007


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by grompf at sublimeintervention.com.

http://bugzilla.ximian.com/show_bug.cgi?id=82387

--- shadow/82387	2007-08-10 13:55:57.000000000 -0400
+++ shadow/82387.tmp.30766	2007-08-10 14:15:24.000000000 -0400
@@ -115,6 +115,46 @@
 Yep thats the one.
 
 I'm working on something else right now; I'll do the math later to see why we're off
 
 
 
+
+------- Additional Comments From grompf at sublimeintervention.com  2007-08-10 14:15 -------
+vargaz,
+
+  Pretty simple fix; we accounted for alignment on apple lower down which you forgot to 
+remove; check this patch and if it looks good to you I'll commit (it fixes the problem here)
+
+Index: tramp-x86.c
+=======================================================
+============
+--- tramp-x86.c (revision 82445)
++++ tramp-x86.c (working copy)
+@@ -252,11 +252,6 @@
+        pushed_args += 2;
+ 
+        /* starting the call sequence */
+-#ifdef __APPLE__
+-       /* changing esp to keep the stack aligned */
+-       x86_alu_reg_imm (buf, X86_SUB, X86_ESP, 8);
+-       pushed_args += 2;
+-#endif
+ 
+        /* FIXME: Push the trampoline address */
+        x86_push_imm (buf, 0);
+@@ -300,12 +295,7 @@
+        else
+                x86_call_code (buf, mono_magic_trampoline);
+ 
+-#ifdef __APPLE__
+-       /* account for the alignment above */
+-       x86_alu_reg_imm (buf, X86_ADD, X86_ESP, 6*4);
+-#else
+        x86_alu_reg_imm (buf, X86_ADD, X86_ESP, 4*4);
+-#endif
+ 
+        /* restore LMF start */
+        /* ebx = previous_lmf */
+
+
+


More information about the mono-bugs mailing list