diff --git a/src/encode.c b/src/encode.c index 2a0e3465ad872ab68ed1cd9a277a12a3363fc513..3fa4aebca6d051272cd8d29f53d293a52a8b134d 100644 --- a/src/encode.c +++ b/src/encode.c @@ -4660,13 +4660,12 @@ static void decode_value2(struct decode_data *data) /* prog */ decode_value2(data); - if (TYPEOF(Pike_sp[-1]) != T_PROGRAM) { + if (!(prog = program_from_svalue(Pike_sp-1))) { ref_push_program (p); decode_error(data, Pike_sp - 1, "Bad inherit: Expected program, got: %O\n", Pike_sp - 2); } - prog = Pike_sp[-1].u.program; if (prog == placeholder_program) { ref_push_program (p); decode_error (data, Pike_sp - 1,