We've seen this nasty little issue. The following code
class C { mapping options = ([1:1]);
void create() { werror("%O\n\n", options); } }
void main() { C c = C(); c->options[3] = 3; C cc = C(); }
will result in
nilsson@riaa:~$ pike --dumpversion 7.9.5 nilsson@riaa:~$ uname -a Linux riaa 2.6.38-10-generic #46-Ubuntu SMP Tue Jun 28 15:07:17 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux nilsson@riaa:~$ pike test.pike ([ /* 1 element */ 1: 1 ])
([ /* 2 elements */ 1: 1, 3: 3 ])
thought it works fine on
nilsson@khora:~$ pike --dumpversion 7.9.5 nilsson@khora:~$ uname -a Linux khora 2.6.32-28-generic #55-Ubuntu SMP Mon Jan 10 21:21:01 UTC 2011 i686 GNU/Linux nilsson@khora:~$ pike test.pike ([ /* 1 element */ 1: 1 ])
([ /* 1 element */ 1: 1 ])