IA64-induced POSIX::SigSet masking with IVs instead of NVs.
p4raw-link: @8665 on //depot/maint-5.6/perl:
906def0b44c94e1ecc41e6a82c183f50655aee49
p4raw-id: //depot/perl@8887
p4raw-integrated: from //depot/maint-5.6/perl@8884 'merge in'
ext/POSIX/POSIX.xs (@8664..)
/* Get back the mask. */
svp = hv_fetch(oldaction, "MASK", 4, TRUE);
if (sv_isa(*svp, "POSIX::SigSet")) {
- unsigned long tmp;
- tmp = (unsigned long)SvNV((SV*)SvRV(*svp));
- sigset = (sigset_t*) tmp;
+ IV tmp = SvIV((SV*)SvRV(*svp));
+ sigset = INT2PTR(sigset_t*, tmp);
}
else {
New(0, sigset, 1, sigset_t);