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 [EMAIL PROTECTED]

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

--- shadow/81956        2007-08-02 15:13:06.000000000 -0400
+++ shadow/81956.tmp.30817      2007-08-04 14:47:26.000000000 -0400
@@ -420,6 +420,41 @@
 Can you provide a stack trace of the error from your test case ?
 
 One possibility is that MS runtime expects special syntax of byte
 array initializer (csc produces __StaticArrayInitTypeSize=<<size>>) to
 work correctly. It's just guess because I cannot test it, it works on
 my machine.
+
+------- Additional Comments From [EMAIL PROTECTED]  2007-08-04 14:47 -------
+OK, It looks better now. I was able to reproduce the issue with the
+compiled sample which you sent me.
+
+I got errors like this
+
+System.AccessViolationException: Attempted to read or write protected
+memory. This is often an indication that other memory is corrupt.
+   at Mono.Math.BigInteger.Kernel.SquarePositive(BigInteger bi,
+UInt32[]& wkSpace)
+   at Mono.Math.BigInteger.ModulusRing.OddPow(BigInteger b, BigInteger
+exp)
+   at Mono.Math.BigInteger.ModPow(BigInteger exp, BigInteger n)
+   at Foo.Calculator.Calculate()
+
+
+Which indicates that the problem is in BigInteger class. I also
+recompiled the test sample with csc and I got same exception.
+
+I check BigInteger class and I think I found the problem.
+
+public static unsafe void SquarePositive (BigInteger bi, ref uint []
+wkSpace)
+{
+       uint [] t = wkSpace;
+       wkSpace = bi.data;
+       uint [] d = bi.data;
+       uint dl = bi.length;
+       bi.data = t;  <<<< HERE
+
+I think this code is not thread safe, bi is shared and it is modified
+by each thread.
+
+
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to