Branch: Tag:

2011-02-04

2011-02-04 23:02:36 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Fixed fatal bug in low_describe_types().

2232:    case T_OBJECT:    if (t->cdr)    { +  dynamic_buffer save_buf; +  ONERROR err;    struct svalue s;    if (t->car) {    my_strcat("object(is ");    } else {    my_strcat("object(implements ");    } -  if ((s.u.program = id_to_program(CDR_TO_INT(t)))) { +  /* We need to save the global buffer, in case id_to_program() +  * starts running Pike code. */ +  save_buffer(&save_buf); +  SET_ONERROR(err, restore_buffer, &save_buf); +  s.u.program = id_to_program(CDR_TO_INT(t)); +  CALL_AND_UNSET_ONERROR(err); +  if (s.u.program) {    s.type = T_PROGRAM;    s.subtype = 0;    describe_svalue(&s, 0, NULL);