| 149 |
managing blocks of memory for use as JIT stacks. |
managing blocks of memory for use as JIT stacks. |
| 150 |
.P |
.P |
| 151 |
The \fBpcre_jit_stack_alloc()\fP function creates a JIT stack. Its arguments |
The \fBpcre_jit_stack_alloc()\fP function creates a JIT stack. Its arguments |
| 152 |
are a starting size and a maximum size, and it returns an opaque value |
are a starting size and a maximum size, and it returns a pointer to an opaque |
| 153 |
of type \fBpcre_jit_stack\fP that represents a JIT stack, or NULL if there is |
structure of type \fBpcre_jit_stack\fP, or NULL if there is an error. The |
| 154 |
an error. The \fBpcre_jit_stack_free()\fP function can be used to free a stack |
\fBpcre_jit_stack_free()\fP function can be used to free a stack that is no |
| 155 |
that is no longer needed. (For the technically minded: the address space is |
longer needed. (For the technically minded: the address space is allocated by |
| 156 |
allocated by mmap or VirtualAlloc.) |
mmap or VirtualAlloc.) |
| 157 |
.P |
.P |
| 158 |
JIT uses far less memory for recursion than the interpretive code, |
JIT uses far less memory for recursion than the interpretive code, |
| 159 |
and a maximum stack size of 512K to 1M should be more than enough for any |
and a maximum stack size of 512K to 1M should be more than enough for any |