Commit cbd2d5a
authored
[cppia] Respect jit exceptions in interp mode (#1188)
* Add tests for local function exceptions in cppia
* [cppia] Respect jit exceptions in interp mode
When running in interp mode, native c++ exception handling is used, but
when running jit mode, jumps are used along with ctx->exception.
This means that an exception thrown from jit mode is not respected in
interp mode. This can cause problems with local functions (which are
interpreted even in jit mode). When a local function calls a compiled
function that throws an exception, the exception is ignored until we
return back into a compiled function.
This patch fixes the problem by checking ctx->exception when running in
interp mode, to make sure that no exception has been thrown from a jit
compiled function.
* [cppia] Catch jit exceptions from interp mode1 parent 409c7d0 commit cbd2d5a
File tree
4 files changed
+125
-21
lines changed- src/hx/cppia
- test/cppia
4 files changed
+125
-21
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
439 | 439 | | |
440 | 440 | | |
441 | 441 | | |
442 | | - | |
| 442 | + | |
443 | 443 | | |
444 | 444 | | |
445 | 445 | | |
| |||
800 | 800 | | |
801 | 801 | | |
802 | 802 | | |
803 | | - | |
804 | | - | |
| 803 | + | |
805 | 804 | | |
806 | 805 | | |
807 | 806 | | |
| |||
5948 | 5947 | | |
5949 | 5948 | | |
5950 | 5949 | | |
5951 | | - | |
| 5950 | + | |
5952 | 5951 | | |
5953 | 5952 | | |
5954 | 5953 | | |
| |||
5998 | 5997 | | |
5999 | 5998 | | |
6000 | 5999 | | |
| 6000 | + | |
| 6001 | + | |
6001 | 6002 | | |
| 6003 | + | |
| 6004 | + | |
6002 | 6005 | | |
| 6006 | + | |
| 6007 | + | |
6003 | 6008 | | |
6004 | 6009 | | |
6005 | 6010 | | |
| |||
6045 | 6050 | | |
6046 | 6051 | | |
6047 | 6052 | | |
| 6053 | + | |
| 6054 | + | |
| 6055 | + | |
6048 | 6056 | | |
6049 | 6057 | | |
6050 | 6058 | | |
| |||
6053 | 6061 | | |
6054 | 6062 | | |
6055 | 6063 | | |
6056 | | - | |
| 6064 | + | |
6057 | 6065 | | |
6058 | 6066 | | |
6059 | 6067 | | |
| |||
6338 | 6346 | | |
6339 | 6347 | | |
6340 | 6348 | | |
| 6349 | + | |
| 6350 | + | |
| 6351 | + | |
| 6352 | + | |
| 6353 | + | |
| 6354 | + | |
| 6355 | + | |
| 6356 | + | |
| 6357 | + | |
| 6358 | + | |
| 6359 | + | |
| 6360 | + | |
| 6361 | + | |
| 6362 | + | |
| 6363 | + | |
| 6364 | + | |
| 6365 | + | |
| 6366 | + | |
6341 | 6367 | | |
6342 | 6368 | | |
6343 | 6369 | | |
6344 | 6370 | | |
6345 | 6371 | | |
6346 | 6372 | | |
6347 | | - | |
6348 | 6373 | | |
6349 | 6374 | | |
6350 | 6375 | | |
6351 | | - | |
6352 | | - | |
6353 | | - | |
6354 | | - | |
6355 | | - | |
6356 | | - | |
6357 | | - | |
6358 | | - | |
6359 | | - | |
6360 | | - | |
6361 | | - | |
6362 | | - | |
6363 | | - | |
| 6376 | + | |
| 6377 | + | |
6364 | 6378 | | |
| 6379 | + | |
| 6380 | + | |
6365 | 6381 | | |
6366 | 6382 | | |
6367 | 6383 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
834 | 834 | | |
835 | 835 | | |
836 | 836 | | |
837 | | - | |
| 837 | + | |
838 | 838 | | |
839 | | - | |
| 839 | + | |
840 | 840 | | |
841 | 841 | | |
842 | 842 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
168 | 168 | | |
169 | 169 | | |
170 | 170 | | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
171 | 191 | | |
172 | 192 | | |
173 | 193 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
0 commit comments