diff --git a/src/encode.c b/src/encode.c index e713561d993f5b42ea7b4a9178c483d0ef321dfd..b2e96f5c6586ede0c5724f72abb6711d6537a36b 100644 --- a/src/encode.c +++ b/src/encode.c @@ -3225,6 +3225,13 @@ static void decode_value2(struct decode_data *data) break; } + if ((p->flags & PROGRAM_NEEDS_PARENT)) { + EDB(2, fprintf(stderr, "%*sKeeping %s to keep parent pointer.\n", + data->depth, "", + get_name_of_type(TYPEOF(Pike_sp[-1])))); + break; + } + add_ref(p); pop_stack(); push_program(p);