Skip to content

Commit af801e6

Browse files
committed
Use POL.asPInt instead of translating exception message
1 parent e74cc03 commit af801e6

File tree

1 file changed

+5
-11
lines changed

1 file changed

+5
-11
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/function/builtins/clinic/JavaIntConversionNode.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@
4747
import com.oracle.graal.python.annotations.ClinicConverterFactory.DefaultValue;
4848
import com.oracle.graal.python.annotations.ClinicConverterFactory.UseDefaultForNone;
4949
import com.oracle.graal.python.builtins.PythonBuiltinClassType;
50+
import com.oracle.graal.python.builtins.objects.function.PArguments;
5051
import com.oracle.graal.python.builtins.objects.object.PythonObjectLibrary;
5152
import com.oracle.graal.python.nodes.ErrorMessages;
5253
import com.oracle.graal.python.nodes.classes.IsSubtypeNode;
53-
import com.oracle.graal.python.nodes.object.IsBuiltinClassProfile;
54-
import com.oracle.graal.python.runtime.exception.PException;
54+
import com.oracle.graal.python.nodes.util.CastToJavaLongLossyNode;
5555
import com.oracle.truffle.api.dsl.Cached;
5656
import com.oracle.truffle.api.dsl.Specialization;
5757
import com.oracle.truffle.api.frame.VirtualFrame;
@@ -67,19 +67,13 @@ protected JavaIntConversionNode(int defaultValue, boolean useDefaultForNone) {
6767
int doOthers(VirtualFrame frame, Object value,
6868
@Cached IsSubtypeNode isSubtypeNode,
6969
@Cached BranchProfile isFloatProfile,
70-
@Cached IsBuiltinClassProfile exceptionProfle,
71-
@CachedLibrary("value") PythonObjectLibrary lib) {
70+
@CachedLibrary("value") PythonObjectLibrary lib,
71+
@Cached CastToJavaLongLossyNode castToLongNode) {
7272
if (isSubtypeNode.execute(lib.getLazyPythonClass(value), PythonBuiltinClassType.PFloat)) {
7373
isFloatProfile.enter();
7474
throw raise(TypeError, ErrorMessages.INTEGER_EXPECTED_GOT_FLOAT);
7575
}
76-
long result;
77-
try {
78-
result = lib.asJavaLong(value, frame);
79-
} catch (PException e) {
80-
e.expect(TypeError, exceptionProfle);
81-
throw raise(TypeError, ErrorMessages.VALUE_TOO_LARGE_TO_FIT_INTO_INDEX);
82-
}
76+
long result = castToLongNode.execute(lib.asPIntWithState(value, PArguments.getThreadState(frame)));
8377
if (!fitsInInt(result)) {
8478
throw raise(TypeError, ErrorMessages.VALUE_TOO_LARGE_TO_FIT_INTO_INDEX);
8579
}

0 commit comments

Comments
 (0)