diff options
| author | Mike Pall <mike> | 2009-12-08 19:49:20 +0100 |
|---|---|---|
| committer | Mike Pall <mike> | 2009-12-08 19:49:20 +0100 |
| commit | 1d1fed48a002dfc0919135911057ebc255a53e0a (patch) | |
| tree | c5c6643908374bb8f02f4c7691332d32f6645986 /src/lj_dispatch.c | |
| parent | 55b16959717084884fd4a0cbae6d19e3786c20c7 (diff) | |
| download | luajit-2.0.0-beta2.tar.gz luajit-2.0.0-beta2.tar.bz2 luajit-2.0.0-beta2.zip | |
RELEASE LuaJIT-2.0.0-beta2v2.0.0-beta2
Diffstat (limited to 'src/lj_dispatch.c')
| -rw-r--r-- | src/lj_dispatch.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/lj_dispatch.c b/src/lj_dispatch.c index d2fce2e0..b427a06e 100644 --- a/src/lj_dispatch.c +++ b/src/lj_dispatch.c | |||
| @@ -153,8 +153,7 @@ int luaJIT_setmode(lua_State *L, int idx, int mode) | |||
| 153 | case LUAJIT_MODE_TRACE: | 153 | case LUAJIT_MODE_TRACE: |
| 154 | if (!(mode & LUAJIT_MODE_FLUSH)) | 154 | if (!(mode & LUAJIT_MODE_FLUSH)) |
| 155 | return 0; /* Failed. */ | 155 | return 0; /* Failed. */ |
| 156 | lj_trace_flush(G2J(g), idx); | 156 | return lj_trace_flush(G2J(g), idx); |
| 157 | break; | ||
| 158 | #else | 157 | #else |
| 159 | case LUAJIT_MODE_ENGINE: | 158 | case LUAJIT_MODE_ENGINE: |
| 160 | case LUAJIT_MODE_FUNC: | 159 | case LUAJIT_MODE_FUNC: |
| @@ -165,6 +164,20 @@ int luaJIT_setmode(lua_State *L, int idx, int mode) | |||
| 165 | return 0; /* Failed. */ | 164 | return 0; /* Failed. */ |
| 166 | break; | 165 | break; |
| 167 | #endif | 166 | #endif |
| 167 | case LUAJIT_MODE_WRAPCFUNC: | ||
| 168 | if ((mode & LUAJIT_MODE_ON)) { | ||
| 169 | if (idx != 0) { | ||
| 170 | cTValue *tv = idx > 0 ? L->base + (idx-1) : L->top + idx; | ||
| 171 | if (tvislightud(tv) && lightudV(tv) != NULL) | ||
| 172 | g->wrapf = (lua_CFunction)lightudV(tv); | ||
| 173 | else | ||
| 174 | return 0; /* Failed. */ | ||
| 175 | } | ||
| 176 | g->wrapmode = 1; | ||
| 177 | } else { | ||
| 178 | g->wrapmode = 0; | ||
| 179 | } | ||
| 180 | break; | ||
| 168 | default: | 181 | default: |
| 169 | return 0; /* Failed. */ | 182 | return 0; /* Failed. */ |
| 170 | } | 183 | } |
