$70 GRAYBYTE WORDPRESS FILE MANAGER $23

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/lib64/perl5/CORE/

HOME
Current File : /lib64/perl5/CORE//invlist_inline.h
/*    invlist_inline.h
 *
 *    Copyright (C) 2012 by Larry Wall and others
 *
 *    You may distribute under the terms of either the GNU General Public
 *    License or the Artistic License, as specified in the README file.
 */

#if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGCOMP_C) || defined(PERL_IN_REGEXEC_C)

/* An element is in an inversion list iff its index is even numbered: 0, 2, 4,
 * etc */
#define ELEMENT_RANGE_MATCHES_INVLIST(i) (! ((i) & 1))
#define PREV_RANGE_MATCHES_INVLIST(i) (! ELEMENT_RANGE_MATCHES_INVLIST(i))

/* This converts to/from our UVs to what the SV code is expecting: bytes. */
#define TO_INTERNAL_SIZE(x) ((x) * sizeof(UV))
#define FROM_INTERNAL_SIZE(x) ((x)/ sizeof(UV))

PERL_STATIC_INLINE bool*
S_get_invlist_offset_addr(SV* invlist)
{
    /* Return the address of the field that says whether the inversion list is
     * offset (it contains 1) or not (contains 0) */
    PERL_ARGS_ASSERT_GET_INVLIST_OFFSET_ADDR;

    assert(SvTYPE(invlist) == SVt_INVLIST);

    return &(((XINVLIST*) SvANY(invlist))->is_offset);
}

PERL_STATIC_INLINE UV
S__invlist_len(SV* const invlist)
{
    /* Returns the current number of elements stored in the inversion list's
     * array */

    PERL_ARGS_ASSERT__INVLIST_LEN;

    assert(SvTYPE(invlist) == SVt_INVLIST);

    return (SvCUR(invlist) == 0)
           ? 0
           : FROM_INTERNAL_SIZE(SvCUR(invlist)) - *get_invlist_offset_addr(invlist);
}

PERL_STATIC_INLINE bool
S__invlist_contains_cp(SV* const invlist, const UV cp)
{
    /* Does <invlist> contain code point <cp> as part of the set? */

    IV index = _invlist_search(invlist, cp);

    PERL_ARGS_ASSERT__INVLIST_CONTAINS_CP;

    return index >= 0 && ELEMENT_RANGE_MATCHES_INVLIST(index);
}

PERL_STATIC_INLINE UV*
S_invlist_array(SV* const invlist)
{
    /* Returns the pointer to the inversion list's array.  Every time the
     * length changes, this needs to be called in case malloc or realloc moved
     * it */

    PERL_ARGS_ASSERT_INVLIST_ARRAY;

    /* Must not be empty.  If these fail, you probably didn't check for <len>
     * being non-zero before trying to get the array */
    assert(_invlist_len(invlist));

    /* The very first element always contains zero, The array begins either
     * there, or if the inversion list is offset, at the element after it.
     * The offset header field determines which; it contains 0 or 1 to indicate
     * how much additionally to add */
    assert(0 == *(SvPVX(invlist)));
    return ((UV *) SvPVX(invlist) + *get_invlist_offset_addr(invlist));
}

#   if defined(PERL_IN_UTF8_C) || defined(PERL_IN_REGEXEC_C)

/* These symbols are only needed later in regcomp.c */
#       undef TO_INTERNAL_SIZE
#       undef FROM_INTERNAL_SIZE
#   endif

#endif

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
14 Aug 2025 9.24 PM
root / root
0755
EXTERN.h
1.674 KB
28 Jul 2025 3.07 PM
root / root
0644
INTERN.h
1.241 KB
28 Jul 2025 3.07 PM
root / root
0644
XSUB.h
23.874 KB
28 Jul 2025 3.07 PM
root / root
0644
av.h
3.242 KB
28 Jul 2025 3.07 PM
root / root
0644
bitcount.h
0.83 KB
28 Jul 2025 3.07 PM
root / root
0644
charclass_invlists.h
949.685 KB
28 Jul 2025 3.07 PM
root / root
0644
config.h
163.655 KB
28 Jul 2025 3.07 PM
root / root
0644
cop.h
38.609 KB
28 Jul 2025 3.07 PM
root / root
0644
cv.h
11.76 KB
28 Jul 2025 3.07 PM
root / root
0644
dosish.h
5.372 KB
28 Jul 2025 3.07 PM
root / root
0644
dquote_inline.h
1.8 KB
28 Jul 2025 3.07 PM
root / root
0644
ebcdic_tables.h
29.156 KB
28 Jul 2025 3.07 PM
root / root
0644
embed.h
95.069 KB
28 Jul 2025 3.07 PM
root / root
0644
embedvar.h
18.467 KB
28 Jul 2025 3.07 PM
root / root
0644
fakesdio.h
3.136 KB
28 Jul 2025 3.07 PM
root / root
0644
feature.h
4.8 KB
28 Jul 2025 3.07 PM
root / root
0644
form.h
1.429 KB
28 Jul 2025 3.07 PM
root / root
0644
git_version.h
0.349 KB
28 Jul 2025 3.07 PM
root / root
0644
gv.h
10.46 KB
28 Jul 2025 3.07 PM
root / root
0644
handy.h
120.458 KB
28 Jul 2025 3.07 PM
root / root
0644
hv.h
24.972 KB
28 Jul 2025 3.07 PM
root / root
0644
hv_func.h
13.099 KB
28 Jul 2025 3.07 PM
root / root
0644
inline.h
45.395 KB
28 Jul 2025 3.07 PM
root / root
0644
intrpvar.h
28.786 KB
28 Jul 2025 3.07 PM
root / root
0644
invlist_inline.h
2.686 KB
28 Jul 2025 3.07 PM
root / root
0644
iperlsys.h
47.662 KB
28 Jul 2025 3.07 PM
root / root
0644
keywords.h
6.433 KB
28 Jul 2025 3.07 PM
root / root
0644
l1_char_class_tab.h
123.943 KB
28 Jul 2025 3.07 PM
root / root
0644
libperl.so
2.08 MB
28 Jul 2025 3.07 PM
root / root
0755
malloc_ctl.h
1.477 KB
28 Jul 2025 3.07 PM
root / root
0644
metaconfig.h
0.658 KB
28 Jul 2025 3.07 PM
root / root
0644
mg.h
2.942 KB
28 Jul 2025 3.07 PM
root / root
0644
mg_data.h
4.809 KB
28 Jul 2025 3.07 PM
root / root
0644
mg_raw.h
4.157 KB
28 Jul 2025 3.07 PM
root / root
0644
mg_vtable.h
9.117 KB
28 Jul 2025 3.07 PM
root / root
0644
mydtrace.h
1.653 KB
28 Jul 2025 3.07 PM
root / root
0644
nostdio.h
3.313 KB
28 Jul 2025 3.07 PM
root / root
0644
op.h
35.565 KB
28 Jul 2025 3.07 PM
root / root
0644
op_reg_common.h
5.772 KB
28 Jul 2025 3.07 PM
root / root
0644
opcode.h
89.733 KB
28 Jul 2025 3.07 PM
root / root
0644
opnames.h
8.629 KB
28 Jul 2025 3.07 PM
root / root
0644
overload.h
3.199 KB
28 Jul 2025 3.07 PM
root / root
0644
pad.h
16.842 KB
28 Jul 2025 3.07 PM
root / root
0644
parser.h
6.752 KB
28 Jul 2025 3.07 PM
root / root
0644
patchlevel.h
9.703 KB
28 Jul 2025 3.07 PM
root / root
0644
perl.h
237.536 KB
28 Jul 2025 3.07 PM
root / root
0644
perlapi.h
5.726 KB
28 Jul 2025 3.07 PM
root / root
0644
perldtrace.h
3.224 KB
28 Jul 2025 3.07 PM
root / root
0644
perlio.h
9.242 KB
28 Jul 2025 3.07 PM
root / root
0644
perliol.h
13.438 KB
28 Jul 2025 3.07 PM
root / root
0644
perlsdio.h
0.515 KB
28 Jul 2025 3.07 PM
root / root
0644
perlvars.h
9.463 KB
28 Jul 2025 3.07 PM
root / root
0644
perly.h
4.269 KB
28 Jul 2025 3.07 PM
root / root
0644
pp.h
26.931 KB
28 Jul 2025 3.07 PM
root / root
0644
pp_proto.h
11.803 KB
28 Jul 2025 3.07 PM
root / root
0644
proto.h
240.979 KB
28 Jul 2025 3.07 PM
root / root
0644
reentr.h
76.436 KB
28 Jul 2025 3.07 PM
root / root
0644
regcharclass.h
141.193 KB
28 Jul 2025 3.07 PM
root / root
0644
regcomp.h
46.676 KB
28 Jul 2025 3.07 PM
root / root
0644
regexp.h
33.573 KB
28 Jul 2025 3.07 PM
root / root
0644
regnodes.h
34.994 KB
28 Jul 2025 3.07 PM
root / root
0644
scope.h
11.626 KB
28 Jul 2025 3.07 PM
root / root
0644
sv.h
82.281 KB
28 Jul 2025 3.07 PM
root / root
0644
thread.h
11.731 KB
28 Jul 2025 3.07 PM
root / root
0644
time64.h
1.539 KB
28 Jul 2025 3.07 PM
root / root
0644
time64_config.h
1.982 KB
28 Jul 2025 3.07 PM
root / root
0644
uconfig.h
163.212 KB
28 Jul 2025 3.07 PM
root / root
0644
unicode_constants.h
7.803 KB
28 Jul 2025 3.07 PM
root / root
0644
unixish.h
4.987 KB
28 Jul 2025 3.07 PM
root / root
0644
utf8.h
57.726 KB
28 Jul 2025 3.07 PM
root / root
0644
utfebcdic.h
65.725 KB
28 Jul 2025 3.07 PM
root / root
0644
util.h
9.375 KB
28 Jul 2025 3.07 PM
root / root
0644
uudmap.h
0.883 KB
28 Jul 2025 3.07 PM
root / root
0644
vutil.h
7.292 KB
28 Jul 2025 3.07 PM
root / root
0644
warnings.h
7.633 KB
28 Jul 2025 3.07 PM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF