On Tue Jun 30 13:41:37 2015, barto...@gmx.de wrote: > On Mon Jun 29 14:21:31 2015, barto...@gmx.de wrote: > > Unfortunatly, another NullPointerException surfaces when looking at > > the newly created $a: > > > > $ perl6-j -e 'class Foo is repr<CStruct> { has int32 $.idontcare; has > > Foo $.bar }; my $a = Foo.new; say $a.bar' > > java.lang.NullPointerException > > in block <unit> at -e:1 > > I tried to look at this NPE, but was unable to find a fix. However, > here is what I suspect -- maybe it is useful for someone else: > > I think the NPE happens in > nqp/src/vm/jvm/runtime/org/perl6/nqp/sixmodel/reprs/CStructInstance.java:95 > (within public SixModelObject get_attribute_boxed) with the following > code: > > o = (Object)Structure.newInstance(structClass, ((Pointer)o)); > > Four lines above 'o' is created with > > Object o = storage.readField(name); > > but 'storage.readField(name)' seems to be 'null'. Maybe this is not > filled properly when the Perl 6 object is created?
This appears to be working now; closable with tests: 09:57 < [Coke]> r: class Foo is repr<CStruct> { has int32 $.idontcare; has Foo $.bar }; my $a = Foo.new; say 42; 09:57 <+camelia> rakudo-{moar,jvm} ba7027: OUTPUT«42» -- Will "Coke" Coleda