Commit
91bba347 made targets exempt from uninit warnings. The com-
mit message only says it has something to do with fixing warnings on
bitwise ops.
Commit
a1afd1046 worked around that by doing an extra stringifica-
tion before assigning to the target, to produce an uninit warning
on purpose.
As far as I can tell, the only purpose of
91bba347 was to avoid the
warning for ~undef. (I haven’t actually tried building the commit
before that to confirm.)
In any case, the uninit warning has been long tested for and is now
expected behaviour.
Since I am about to remove the uninit warning exemption for targets,
stop relying on that.
This speed ups the code slightly, as we avoid a double string-
ification.
I32 anum;
STRLEN len;
- (void)SvPV_nomg_const(sv,len); /* force check for uninit var */
- sv_setsv_nomg(TARG, sv);
- tmps = (U8*)SvPV_force_nomg(TARG, len);
+ sv_copypv_nomg(TARG, sv);
+ tmps = (U8*)SvPV_nomg(TARG, len);
anum = len;
if (SvUTF8(TARG)) {
/* Calculate exact length, let's not estimate. */