Stdio.File()->lock() returns a destructed object.
Imported from http://bugzilla.roxen.com/bugzilla/show_bug.cgi?id=116
Reported by @grubba
mixed do_test()
{
object o = Stdio.File("config.cache", "wr")->lock();
werror("%O\n", mkmapping(indices(o), values(o)));
return o && 1;
}
int main(int argc, array(string) argv)
{
exit(do_test() != 1);
}
$ /home/grubba/src/Pike7.1/build/sol7/pike -DNOT_INSTALLED
-m/home/grubba/src/Pike7.1/build/sol7/master.pike bug2.pike && echo Ok.
indices() on destructed object.
bug2.pike:4: do_test()
bug2.pike:10: main(1,({"/home/grubba/src/Pike7.1/build/sol7/bug2.pike"}))
modules/files/file.c line ~2495 - ~2498 looks suspicious.