diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2024-09-12 23:41:32 -0400 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2024-09-12 23:41:32 -0400 |
| commit | da9cc93c466c65e0294b4b29bec6603b2d4552eb (patch) | |
| tree | bfd266d559365366802eaf1a285d7983b426f9c8 /builtins/functions.c | |
| parent | 46a2aa2ffc71820767f0cdaead84c26dc240c893 (diff) | |
Make functions print with `func name(...)->... [file:line]` info
Diffstat (limited to 'builtins/functions.c')
| -rw-r--r-- | builtins/functions.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/builtins/functions.c b/builtins/functions.c index a2b17807..edbea33b 100644 --- a/builtins/functions.c +++ b/builtins/functions.c @@ -43,6 +43,18 @@ public void tomo_init(void) errx(1, "Couldn't set printf specifier"); } +static Table_t function_names = {}; + +public void register_function(void *fn, Text_t name) +{ + Table$set(&function_names, &fn, &name, Table$info(Function$info("???"), &Text$info)); +} + +public Text_t *get_function_name(void *fn) +{ + return Table$get(function_names, &fn, Table$info(Function$info("???"), &Text$info)); +} + void print_stack_trace(FILE *out, int start, int stop) { // Print stack trace: |
