diff options
| author | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1995-10-26 12:21:56 -0200 |
|---|---|---|
| committer | Roberto Ierusalimschy <roberto@inf.puc-rio.br> | 1995-10-26 12:21:56 -0200 |
| commit | 15d48576ea737d51e579f101a870e37f62b81f22 (patch) | |
| tree | ed2390188cfb5304d366696262ccda593f3e8589 /func.c | |
| parent | 39b071f7b13e6ed6eff4a0f0471d2450a9c48084 (diff) | |
| download | lua-15d48576ea737d51e579f101a870e37f62b81f22.tar.gz lua-15d48576ea737d51e579f101a870e37f62b81f22.tar.bz2 lua-15d48576ea737d51e579f101a870e37f62b81f22.zip | |
functions now may be declared with any "var" as a name;
therefore they do not have a "baptism" name.
Changes in debug API to acomodate that.
Diffstat (limited to 'func.c')
| -rw-r--r-- | func.c | 20 |
1 files changed, 20 insertions, 0 deletions
| @@ -1,7 +1,10 @@ | |||
| 1 | #include <stdio.h> | 1 | #include <stdio.h> |
| 2 | |||
| 3 | #include "luadebug.h" | ||
| 2 | #include "table.h" | 4 | #include "table.h" |
| 3 | #include "mem.h" | 5 | #include "mem.h" |
| 4 | #include "func.h" | 6 | #include "func.h" |
| 7 | #include "opcode.h" | ||
| 5 | 8 | ||
| 6 | static TFunc *function_root = NULL; | 9 | static TFunc *function_root = NULL; |
| 7 | 10 | ||
| @@ -57,3 +60,20 @@ Long luaI_funccollector (void) | |||
| 57 | } | 60 | } |
| 58 | return counter; | 61 | return counter; |
| 59 | } | 62 | } |
| 63 | |||
| 64 | |||
| 65 | void lua_funcinfo (lua_Object func, char **filename, int *linedefined) | ||
| 66 | { | ||
| 67 | Object *f = luaI_Address(func); | ||
| 68 | if (f->tag == LUA_T_MARK || f->tag == LUA_T_FUNCTION) | ||
| 69 | { | ||
| 70 | *filename = f->value.tf->fileName; | ||
| 71 | *linedefined = f->value.tf->lineDefined; | ||
| 72 | } | ||
| 73 | else if (f->tag == LUA_T_CMARK || f->tag == LUA_T_CFUNCTION) | ||
| 74 | { | ||
| 75 | *filename = "(C)"; | ||
| 76 | *linedefined = -1; | ||
| 77 | } | ||
| 78 | } | ||
| 79 | |||
