HEX
Server: nginx/1.28.3
System: Linux ip-172-31-12-242 6.17.0-1007-aws #7~24.04.1-Ubuntu SMP Thu Jan 22 21:04:49 UTC 2026 x86_64
User: root (0)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //usr/lib/x86_64-linux-gnu/perl/5.38.2/CORE/reginline.h
#ifndef PERL_REGINLINE_H

/*
 - regnext - dig the "next" pointer out of a node
 */
PERL_STATIC_INLINE
regnode *
Perl_regnext(pTHX_ const regnode *p)
{
    I32 offset;

    if (!p)
        return(NULL);

    if (OP(p) > REGNODE_MAX) {                /* regnode.type is unsigned */
        Perl_croak(aTHX_ "Corrupted regexp opcode %d > %d",
                                                (int)OP(p), (int)REGNODE_MAX);
    }

    offset = (REGNODE_OFF_BY_ARG(OP(p)) ? ARG1u(p) : NEXT_OFF(p));
    if (offset == 0)
        return(NULL);

    return(regnode *)(p+offset);
}

/*
 - regnode_after - find the node physically following p in memory,
   taking into account the size of p as determined by OP(p), our
   sizing data, and possibly the STR_SZ() macro.
 */
PERL_STATIC_INLINE
regnode *
Perl_regnode_after(pTHX_ const regnode *p, const bool varies)
{
    assert(p);
    const U8 op = OP(p);
    assert(op < REGNODE_MAX);
    const regnode *ret = p + NODE_STEP_REGNODE + REGNODE_ARG_LEN(op);
    if (varies || REGNODE_ARG_LEN_VARIES(op))
        ret += STR_SZ(STR_LEN(p));
    return (regnode *)ret;
}

/* validate that the passed in node and extra length would match that
 * returned by regnode_after() */
PERL_STATIC_INLINE
bool
Perl_check_regnode_after(pTHX_ const regnode *p, const STRLEN extra)
{
    const regnode *nextoper = regnode_after((regnode *)p,FALSE);
    const regnode *other = REGNODE_AFTER_PLUS(p, extra);
    if (nextoper != other) {
        return FALSE;
    }
    return TRUE;
}

#define PERL_REGINLINE_H
#endif
/*
 * ex: set ts=8 sts=4 sw=4 et:
 */