Skip to content

Commit 6eb6e3f

Browse files
committed
Fix unbounded recursive nodes creation in ExpectIntNode
1 parent e027e87 commit 6eb6e3f

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/zlib/ZLibModuleBuiltins.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@
6363
import com.oracle.graal.python.builtins.CoreFunctions;
6464
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
6565
import com.oracle.graal.python.builtins.PythonBuiltins;
66+
import com.oracle.graal.python.builtins.modules.MathGuards;
6667
import com.oracle.graal.python.builtins.objects.PNone;
6768
import com.oracle.graal.python.builtins.objects.bytes.BytesNodes;
6869
import com.oracle.graal.python.builtins.objects.bytes.BytesNodes.ToBytesNode;
@@ -210,6 +211,7 @@ private static String asString(Object o) {
210211
return null;
211212
}
212213

214+
@ImportStatic(MathGuards.class)
213215
public abstract static class ExpectIntNode extends ArgumentCastNode.ArgumentCastNodeWithRaise {
214216
private final Object defaultValue;
215217

@@ -231,6 +233,11 @@ static int doInt(int i) {
231233
return i;
232234
}
233235

236+
@Specialization
237+
static int doBool(boolean b) {
238+
return PInt.intValue(b);
239+
}
240+
234241
@Specialization
235242
public int toInt(long x) {
236243
// lost magnitude is ok here.
@@ -243,7 +250,7 @@ public int toInt(PInt x) {
243250
return x.intValue();
244251
}
245252

246-
@Specialization(guards = "!isPNone(value)", limit = "3")
253+
@Specialization(guards = {"!isPNone(value)", "!isInteger(value)"}, limit = "3")
247254
Object doOthers(VirtualFrame frame, Object value,
248255
@Cached("createRec()") ExpectIntNode rec,
249256
@CachedLibrary("value") PythonObjectLibrary lib) {

0 commit comments

Comments
 (0)