From 13a9feb6942a18623dbf545d7a6ef4d12372bca2 Mon Sep 17 00:00:00 2001
From: stepan <stepan.sindelar@oracle.com>
Date: Wed, 30 Nov 2016 11:31:51 +0100
Subject: [PATCH] Fix typo in RPois + Wilcox catches OutOfMemoryError

---
 .../src/com/oracle/truffle/r/library/stats/RPois.java     | 2 +-
 .../src/com/oracle/truffle/r/library/stats/Wilcox.java    | 8 +++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RPois.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RPois.java
index ee2e08713a..dc2ba3e7b6 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RPois.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/RPois.java
@@ -160,7 +160,7 @@ public final class RPois {
         /* Only if mu >= 10 : ----------------------- */
 
         /* Step N. normal sample */
-        g = mu + s * rand.unifRand(); /* norm_rand() ~ N(0,1), standard normal */
+        g = mu + s * rand.normRand(); /* norm_rand() ~ N(0,1), standard normal */
 
         if (g >= 0.) {
             pois = Math.floor(g);
diff --git a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Wilcox.java b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Wilcox.java
index 04aec9c58b..0064741144 100644
--- a/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Wilcox.java
+++ b/com.oracle.truffle.r.library/src/com/oracle/truffle/r/library/stats/Wilcox.java
@@ -53,7 +53,13 @@ public final class Wilcox {
             r = 0.0;
             k = (int) (m + n);
 
-            int[] x = new int[k];
+            int[] x;
+            try {
+                x = new int[k];
+            } catch (OutOfMemoryError ex) {
+                // GnuR seems to be reporting the same number regardless of 'k'
+                throw RError.error(RError.SHOW_CALLER, CALLOC_COULD_NOT_ALLOCATE_INF);
+            }
             for (i = 0; i < k; i++) {
                 x[i] = i;
             }
-- 
GitLab