in reply to Re: XS returning undef?
in thread XS returning undef?

I'm setting dirinfo to a hashref in this line:

dirinfo = newRV_noinc((SV *)newdirinfo);

And since dirinfo is listed in the OUTPUT section, I'm expecting my $hashref to actually be the hashref I created in the newRV_noinc() call. In the C code generated by xsubpp, it looks ok:

ST(1) = dirinfo; SvSETMAGIC(ST(1));

so obviously the second item on the stack (my $hashref) is getting set to dirinfo as it should. The only thing I can think of is that it's somehow being garabage collected too soon.

RETVAL is an integer status code that I'm returning.

Update: I checked on RETVAL ($result in my code example above) and it's getting set properly.