|
41 | 41 | package com.oracle.graal.python.builtins.modules.io;
|
42 | 42 |
|
43 | 43 | import static com.oracle.graal.python.builtins.PythonBuiltinClassType.BlockingIOError;
|
| 44 | +import static com.oracle.graal.python.builtins.objects.exception.OsErrorBuiltins.OS_ERROR_ATTR_FACTORY; |
44 | 45 | import static com.oracle.graal.python.nodes.ErrorMessages.BUF_SIZE_POS;
|
45 | 46 | import static com.oracle.graal.python.nodes.ErrorMessages.IO_STREAM_DETACHED;
|
46 | 47 | import static com.oracle.graal.python.nodes.ErrorMessages.IO_UNINIT;
|
|
53 | 54 | import com.oracle.graal.python.builtins.modules.io.BufferedIONodesFactory.RawTellNodeGen;
|
54 | 55 | import com.oracle.graal.python.builtins.objects.PNone;
|
55 | 56 | import com.oracle.graal.python.builtins.objects.exception.OSErrorEnum;
|
| 57 | +import com.oracle.graal.python.builtins.objects.exception.OsErrorBuiltins; |
56 | 58 | import com.oracle.graal.python.builtins.objects.exception.PBaseException;
|
57 | 59 | import com.oracle.graal.python.lib.PyNumberAsSizeNode;
|
58 | 60 | import com.oracle.graal.python.nodes.PNodeWithRaise;
|
@@ -226,9 +228,11 @@ static PException raise(Node node, Object errno, String message, int written,
|
226 | 228 | written
|
227 | 229 | };
|
228 | 230 | PBaseException exception = factory.createBaseException(BlockingIOError, factory.createTuple(args));
|
229 |
| - writeAttribute.execute(exception, "errno", errno); |
230 |
| - writeAttribute.execute(exception, "strerror", message); |
231 |
| - writeAttribute.execute(exception, "characters_written", written); |
| 231 | + final Object[] attrs = OS_ERROR_ATTR_FACTORY.create(); |
| 232 | + attrs[OsErrorBuiltins.IDX_ERRNO] = errno; |
| 233 | + attrs[OsErrorBuiltins.IDX_STRERROR] = message; |
| 234 | + attrs[OsErrorBuiltins.IDX_WRITTEN] = written; |
| 235 | + exception.setExceptionAttributes(attrs); |
232 | 236 | return PRaiseNode.raise(node, exception, PythonOptions.isPExceptionWithJavaStacktrace(PythonLanguage.get(node)));
|
233 | 237 | }
|
234 | 238 |
|
|
0 commit comments