From 306bc9be5643af7494fa372979ab5fc17157d3c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?= <grubba@grubba.org> Date: Fri, 18 Oct 2019 11:01:33 +0200 Subject: [PATCH] Compiler: Make get_name_of_function() survive destructed functions. Fixes remainder of [PIKE-221]. --- src/las.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/las.c b/src/las.c index 0d1db036c8..4152355b65 100644 --- a/src/las.c +++ b/src/las.c @@ -3150,9 +3150,16 @@ static struct pike_string *get_name_of_function(node *n) if(SUBTYPEOF(n->u.sval) == FUNCTION_BUILTIN) { name = n->u.sval.u.efun->name; - }else{ - name = - ID_FROM_INT(n->u.sval.u.object->prog, SUBTYPEOF(n->u.sval))->name; + } else { + struct program *p = n->u.sval.u.object->prog; + if (!p) { + p = id_to_program(n->u.sval.u.object->program_id); + } + if (p) { + name = ID_FROM_INT(p, SUBTYPEOF(n->u.sval))->name; + } else { + MAKE_CONST_STRING(name, "function in destructed object"); + } } break; -- GitLab