diff --git a/src/las.c b/src/las.c index 0d1db036c835f21031dab2394ecdf94c16824ce2..4152355b654f193c4a4e8aa42a386f5ccd5be9c3 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;