This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
HP-UX dynaloading uses shl_t, not void ptr.
[perl5.git] / inline.h
index 873055d..cde2c54 100644 (file)
--- a/inline.h
+++ b/inline.h
@@ -90,6 +90,41 @@ S_MgBYTEPOS(pTHX_ MAGIC *mg, SV *sv, const char *s, STRLEN len)
 }
 #endif
 
+/* ------------------------------- pad.h ------------------------------ */
+
+#if defined(PERL_IN_PAD_C) || defined(PERL_IN_OP_C)
+PERL_STATIC_INLINE bool
+PadnameIN_SCOPE(const PADNAME * const pn, const U32 seq)
+{
+    /* is seq within the range _LOW to _HIGH ?
+     * This is complicated by the fact that PL_cop_seqmax
+     * may have wrapped around at some point */
+    if (COP_SEQ_RANGE_LOW(pn) == PERL_PADSEQ_INTRO)
+       return FALSE; /* not yet introduced */
+
+    if (COP_SEQ_RANGE_HIGH(pn) == PERL_PADSEQ_INTRO) {
+    /* in compiling scope */
+       if (
+           (seq >  COP_SEQ_RANGE_LOW(pn))
+           ? (seq - COP_SEQ_RANGE_LOW(pn) < (U32_MAX >> 1))
+           : (COP_SEQ_RANGE_LOW(pn) - seq > (U32_MAX >> 1))
+       )
+           return TRUE;
+    }
+    else if (
+       (COP_SEQ_RANGE_LOW(pn) > COP_SEQ_RANGE_HIGH(pn))
+       ?
+           (  seq >  COP_SEQ_RANGE_LOW(pn)
+           || seq <= COP_SEQ_RANGE_HIGH(pn))
+
+       :    (  seq >  COP_SEQ_RANGE_LOW(pn)
+            && seq <= COP_SEQ_RANGE_HIGH(pn))
+    )
+       return TRUE;
+    return FALSE;
+}
+#endif
+
 /* ----------------------------- regexp.h ----------------------------- */
 
 PERL_STATIC_INLINE struct regexp *
@@ -156,18 +191,6 @@ SvAMAGIC_off(SV *sv)
 }
 
 PERL_STATIC_INLINE U32
-S_SvPADTMP_on(SV *sv)
-{
-    assert(!(SvFLAGS(sv) & SVs_PADMY));
-    return SvFLAGS(sv) |= SVs_PADTMP;
-}
-PERL_STATIC_INLINE U32
-S_SvPADTMP_off(SV *sv)
-{
-    assert(!(SvFLAGS(sv) & SVs_PADMY));
-    return SvFLAGS(sv) &= ~SVs_PADTMP;
-}
-PERL_STATIC_INLINE U32
 S_SvPADSTALE_on(SV *sv)
 {
     assert(!(SvFLAGS(sv) & SVs_PADTMP));
@@ -281,7 +304,7 @@ S_is_safe_syscall(pTHX_ const char *pv, STRLEN len, const char *what, const char
 
     PERL_ARGS_ASSERT_IS_SAFE_SYSCALL;
 
-    if (pv && len > 1) {
+    if (len > 1) {
         char *null_at;
         if (UNLIKELY((null_at = (char *)memchr(pv, 0, len-1)) != NULL)) {
                 SETERRNO(ENOENT, LIB_INVARG);