From: Alan Burlison <Alan.Burlison@uk.sun.com>
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 {