man-pages/man3/pcre2_jit_stack_assign.3.html
2021-03-31 01:06:50 +01:00

97 lines
2.9 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML><HEAD><TITLE>Man page of PCRE2_JIT_STACK_ASSIGN</TITLE>
</HEAD><BODY>
<H1>PCRE2_JIT_STACK_ASSIGN</H1>
Section: C Library Functions (3)<BR>Updated: 28 June 2018<BR><A HREF="#index">Index</A>
<A HREF="/cgi-bin/man/man2html">Return to Main Contents</A><HR>
<A NAME="lbAB">&nbsp;</A>
<H2>NAME</H2>
PCRE2 - Perl-compatible regular expressions (revised API)
<A NAME="lbAC">&nbsp;</A>
<H2>SYNOPSIS</H2>
<P>
<B>#include &lt;<A HREF="file:///usr/include/pcre2.h">pcre2.h</A>&gt;</B>
<P>
<PRE>
<B>void pcre2_jit_stack_assign(pcre2_match_context *</B><I>mcontext</I>,
<B> pcre2_jit_callback </B><I>callback_function</I>, void *<I>callback_data</I>);
</PRE>
<A NAME="lbAD">&nbsp;</A>
<H2>DESCRIPTION</H2>
<P>
This function provides control over the memory used by JIT as a run-time stack
when <B>pcre2_match()</B> or <B>pcre2_jit_match()</B> is called with a pattern
that has been successfully processed by the JIT compiler. The information that
determines which stack is used is put into a match context that is subsequently
passed to a matching function. The arguments of this function are:
<P>
<BR>&nbsp;&nbsp;mcontext&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;pointer&nbsp;to&nbsp;a&nbsp;match&nbsp;context
<BR>&nbsp;&nbsp;callback&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;a&nbsp;callback&nbsp;function
<BR>&nbsp;&nbsp;callback_data&nbsp;&nbsp;a&nbsp;JIT&nbsp;stack&nbsp;or&nbsp;a&nbsp;value&nbsp;to&nbsp;be&nbsp;passed&nbsp;to&nbsp;the&nbsp;callback
<P>
If <I>mcontext</I> is NULL, the function returns immediately, without doing
anything.
<P>
If <I>callback</I> is NULL and <I>callback_data</I> is NULL, an internal 32KiB
block on the machine stack is used.
<P>
If <I>callback</I> is NULL and <I>callback_data</I> is not NULL,
<I>callback_data</I> must be a valid JIT stack, the result of calling
<B>pcre2_jit_stack_create()</B>.
<P>
If <I>callback</I> not NULL, it is called with <I>callback_data</I> as an
argument at the start of matching, in order to set up a JIT stack. If the
result is NULL, the internal 32KiB stack is used; otherwise the return value
must be a valid JIT stack, the result of calling
<B>pcre2_jit_stack_create()</B>.
<P>
You may safely use the same JIT stack for multiple patterns, as long as they
are all matched in the same thread. In a multithread application, each thread
must use its own JIT stack. For more details, see the
<B>pcre2jit</B>
page.
<P>
There is a complete description of the PCRE2 native API in the
<B>pcre2api</B>
page and a description of the POSIX API in the
<B>pcre2posix</B>
page.
<P>
<HR>
<A NAME="index">&nbsp;</A><H2>Index</H2>
<DL>
<DT id="1"><A HREF="#lbAB">NAME</A><DD>
<DT id="2"><A HREF="#lbAC">SYNOPSIS</A><DD>
<DT id="3"><A HREF="#lbAD">DESCRIPTION</A><DD>
</DL>
<HR>
This document was created by
<A HREF="/cgi-bin/man/man2html">man2html</A>,
using the manual pages.<BR>
Time: 00:05:50 GMT, March 31, 2021
</BODY>
</HTML>