From: Alan Burlison Date: Mon, 9 Aug 2004 10:30:25 +0000 (+0100) Subject: Re: POSIX::sigprocmask implemented incorrectly X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=a3b811a7af57a27dc18c2ae9d0626dbea44a781f;p=p5sagit%2Fp5-mst-13.2.git Re: POSIX::sigprocmask implemented incorrectly Message-ID: <41174431.6050803@sun.com> p4raw-id: //depot/perl@23204 --- diff --git a/ext/POSIX/POSIX.xs b/ext/POSIX/POSIX.xs index c6a6114..25c4250 100644 --- a/ext/POSIX/POSIX.xs +++ b/ext/POSIX/POSIX.xs @@ -1393,9 +1393,9 @@ sigprocmask(how, sigset, oldsigset = 0) POSIX::SigSet sigset = NO_INIT POSIX::SigSet oldsigset = NO_INIT INIT: - if (SvTYPE(ST(1)) == SVt_NULL) { + if (! SvOK(ST(1))) { sigset = NULL; - } else if (sv_derived_from(ST(1), "POSIX::SigSet")) { + } else if (sv_isa(ST(1), "POSIX::SigSet")) { IV tmp = SvIV((SV*)SvRV(ST(1))); sigset = INT2PTR(POSIX__SigSet,tmp); } else { @@ -1404,7 +1404,7 @@ INIT: if ( items < 3 || SvTYPE(ST(2)) == SVt_NULL) { oldsigset = NULL; - } else if (sv_derived_from(ST(2), "POSIX::SigSet")) { + } else if (sv_isa(ST(2), "POSIX::SigSet")) { IV tmp = SvIV((SV*)SvRV(ST(2))); oldsigset = INT2PTR(POSIX__SigSet,tmp); } else {