Commit 972bc6c
committed
Use CallBinaryMethodNode for dispatching __getattribute__ callable
It is a common pattern that Python class defines only __getattr__, in which
case the TpSlotGetAttrPython will wrap the inherited builtin __getattribute__
and the user defined __getattr__ callable.
Normally, slots wrapping Python callables do not wrap builtins. This is
impossible for slots wrapping one callable, because we unwrap them in
fixupSlotDispatchers (like CPython). For other slots wrapping 2 callables it is
probably not as common as for tp_getattro. Therefore the dispatching code for
those nodes, does not have a fast-path for builtin callables. This PR adds such
fast-path to CallManagedSlotGetAttrNode.1 parent 15e4a1e commit 972bc6c
File tree
1 file changed
+11
-1
lines changed- graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/type/slots
1 file changed
+11
-1
lines changedLines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
66 | 68 | | |
67 | 69 | | |
68 | 70 | | |
| |||
297 | 299 | | |
298 | 300 | | |
299 | 301 | | |
| 302 | + | |
| 303 | + | |
300 | 304 | | |
301 | 305 | | |
302 | 306 | | |
| |||
309 | 313 | | |
310 | 314 | | |
311 | 315 | | |
312 | | - | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
313 | 323 | | |
314 | 324 | | |
315 | 325 | | |
| |||
0 commit comments