Commit 8d45e1f
authored
ZJIT: Fix internal compiler error looking up profiles for trace_getinstancevariable (ruby#14969)
We treat getinstancevariable differently from other opcodes: it does not
look at the stack for its self operand, but instead looks at
`cfp->self`. In some cases, we might see the `trace_` variant in the
front-end, so make sure we treat that the same.
Example repro:
```
def test
@foo
end
28.times do
test
end
trace = TracePoint.trace(:call) do |tp|
puts tp.method_id
end
trace.enable do
30.times do
test
end
end
```1 parent d97fb3b commit 8d45e1f
1 file changed
+28
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4021 | 4021 | | |
4022 | 4022 | | |
4023 | 4023 | | |
4024 | | - | |
| 4024 | + | |
| 4025 | + | |
| 4026 | + | |
| 4027 | + | |
| 4028 | + | |
4025 | 4029 | | |
4026 | 4030 | | |
4027 | 4031 | | |
| |||
7408 | 7412 | | |
7409 | 7413 | | |
7410 | 7414 | | |
| 7415 | + | |
| 7416 | + | |
| 7417 | + | |
| 7418 | + | |
| 7419 | + | |
| 7420 | + | |
| 7421 | + | |
| 7422 | + | |
| 7423 | + | |
| 7424 | + | |
| 7425 | + | |
| 7426 | + | |
| 7427 | + | |
| 7428 | + | |
| 7429 | + | |
| 7430 | + | |
| 7431 | + | |
| 7432 | + | |
| 7433 | + | |
| 7434 | + | |
| 7435 | + | |
| 7436 | + | |
| 7437 | + | |
7411 | 7438 | | |
7412 | 7439 | | |
7413 | 7440 | | |
| |||
0 commit comments