in reply to Re^9: odd line in windows
in thread odd line in windows

Update: This is wrong. should have looked at what newSVrv did.


That's essentially the same thing tye said above.

Yes. I didn't notice that in a quick pre-post scan.

How come it works as erroneously shown in the documentation?

What do you mean by work? It doesn't return a reference, much less a reference to something blessed, so anything one should be able to do with the returned value will result in some error. (Probably Can't call method "foo" without a package or object reference.)

What happens to all the code that has been written based upon that bad documentation

If what I said in the first paragraph is correct, there is no such (working) code.

now that the IV and RV fields have been combined?

I'm pretty sure the IV and RV fields were at the same offset even before the RV scalar type disappeared.

That means sv_setiv(obj, (IV)soldier); changes the address inside the reference, no matter which version of Perl is used. I would expect Perl to possibly segfault when the reference is destroyed during global destruction since the pointer in the reference doesn't point to a scalar.

Update: Actually, it might make a difference, since sv_setiv changes the flags, IIRC. But what happens to this poor *unused* scalar is really of no import.