summaryrefslogtreecommitdiff
path: root/src/lj_api.c
diff options
context:
space:
mode:
authorMike Pall <mike>2011-06-07 21:37:24 +0200
committerMike Pall <mike>2011-06-07 21:37:24 +0200
commit585cf05dbd54564d2d3387cef09b3ac2d5e52afd (patch)
treed455c80e6d916ae2673d8aaaee50f0ba77d0b92a /src/lj_api.c
parentb44ccd426339a9eb0da83633d4b71a23dac29762 (diff)
downloadluajit2-585cf05dbd54564d2d3387cef09b3ac2d5e52afd.tar.gz
Move debugging/introspection functionality to lj_debug.c.
Diffstat (limited to 'src/lj_api.c')
-rw-r--r--src/lj_api.c27
1 files changed, 4 insertions, 23 deletions
diff --git a/src/lj_api.c b/src/lj_api.c
index 3a8448b5..4e41ccc0 100644
--- a/src/lj_api.c
+++ b/src/lj_api.c
@@ -12,6 +12,7 @@
#include "lj_obj.h"
#include "lj_gc.h"
#include "lj_err.h"
+#include "lj_debug.h"
#include "lj_str.h"
#include "lj_tab.h"
#include "lj_func.h"
@@ -27,7 +28,7 @@
/* -- Common helper functions --------------------------------------------- */
-#define api_checknelems(L, n) api_check(L, (n) <= (L->top - L->base))
+#define api_checknelems(L, n) api_check(L, (n) <= (L->top - L->base))
#define api_checkvalidindex(L, i) api_check(L, (i) != niltv(L))
static TValue *index2adr(lua_State *L, int idx)
@@ -832,30 +833,10 @@ LUA_API int lua_next(lua_State *L, int idx)
return more;
}
-static const char *aux_upvalue(cTValue *f, uint32_t idx, TValue **val)
-{
- GCfunc *fn;
- if (!tvisfunc(f)) return NULL;
- fn = funcV(f);
- if (isluafunc(fn)) {
- GCproto *pt = funcproto(fn);
- if (idx < pt->sizeuv) {
- *val = uvval(&gcref(fn->l.uvptr[idx])->uv);
- return strdata(proto_uvname(pt, idx));
- }
- } else {
- if (idx < fn->c.nupvalues) {
- *val = &fn->c.upvalue[idx];
- return "";
- }
- }
- return NULL;
-}
-
LUA_API const char *lua_getupvalue(lua_State *L, int idx, int n)
{
TValue *val;
- const char *name = aux_upvalue(index2adr(L, idx), (uint32_t)(n-1), &val);
+ const char *name = lj_debug_uvname(index2adr(L, idx), (uint32_t)(n-1), &val);
if (name) {
copyTV(L, L->top, val);
incr_top(L);
@@ -1010,7 +991,7 @@ LUA_API const char *lua_setupvalue(lua_State *L, int idx, int n)
TValue *val;
const char *name;
api_checknelems(L, 1);
- name = aux_upvalue(f, (uint32_t)(n-1), &val);
+ name = lj_debug_uvname(f, (uint32_t)(n-1), &val);
if (name) {
L->top--;
copyTV(L, val, L->top);