18
18
#include "php_ini.h"
19
19
#include "php_globals.h"
20
20
#include "php_pcre.h"
21
- #include "php_pcre_arginfo.h"
22
21
#include "ext/standard/info.h"
23
22
#include "ext/standard/basic_functions.h"
24
23
#include "zend_smart_str.h"
43
42
44
43
#define PCRE_CACHE_SIZE 4096
45
44
45
+ #ifdef HAVE_PCRE_JIT_SUPPORT
46
+ #define PHP_PCRE_JIT_SUPPORT 1
47
+ #else
48
+ #define PHP_PCRE_JIT_SUPPORT 0
49
+ #endif
50
+
51
+ char * php_pcre_version ;
52
+
53
+ #include "php_pcre_arginfo.h"
54
+
46
55
struct _pcre_cache_entry {
47
56
pcre2_code * re ;
48
57
uint32_t preg_options ;
@@ -422,8 +431,6 @@ static PHP_MINFO_FUNCTION(pcre)
422
431
/* {{{ PHP_MINIT_FUNCTION(pcre) */
423
432
static PHP_MINIT_FUNCTION (pcre )
424
433
{
425
- char * version ;
426
-
427
434
#ifdef HAVE_PCRE_JIT_SUPPORT
428
435
if (UNEXPECTED (!pcre2_init_ok )) {
429
436
/* Retry. */
@@ -436,33 +443,9 @@ static PHP_MINIT_FUNCTION(pcre)
436
443
437
444
REGISTER_INI_ENTRIES ();
438
445
439
- REGISTER_LONG_CONSTANT ("PREG_PATTERN_ORDER" , PREG_PATTERN_ORDER , CONST_CS | CONST_PERSISTENT );
440
- REGISTER_LONG_CONSTANT ("PREG_SET_ORDER" , PREG_SET_ORDER , CONST_CS | CONST_PERSISTENT );
441
- REGISTER_LONG_CONSTANT ("PREG_OFFSET_CAPTURE" , PREG_OFFSET_CAPTURE , CONST_CS | CONST_PERSISTENT );
442
- REGISTER_LONG_CONSTANT ("PREG_UNMATCHED_AS_NULL" , PREG_UNMATCHED_AS_NULL , CONST_CS | CONST_PERSISTENT );
443
- REGISTER_LONG_CONSTANT ("PREG_SPLIT_NO_EMPTY" , PREG_SPLIT_NO_EMPTY , CONST_CS | CONST_PERSISTENT );
444
- REGISTER_LONG_CONSTANT ("PREG_SPLIT_DELIM_CAPTURE" , PREG_SPLIT_DELIM_CAPTURE , CONST_CS | CONST_PERSISTENT );
445
- REGISTER_LONG_CONSTANT ("PREG_SPLIT_OFFSET_CAPTURE" , PREG_SPLIT_OFFSET_CAPTURE , CONST_CS | CONST_PERSISTENT );
446
- REGISTER_LONG_CONSTANT ("PREG_GREP_INVERT" , PREG_GREP_INVERT , CONST_CS | CONST_PERSISTENT );
447
-
448
- REGISTER_LONG_CONSTANT ("PREG_NO_ERROR" , PHP_PCRE_NO_ERROR , CONST_CS | CONST_PERSISTENT );
449
- REGISTER_LONG_CONSTANT ("PREG_INTERNAL_ERROR" , PHP_PCRE_INTERNAL_ERROR , CONST_CS | CONST_PERSISTENT );
450
- REGISTER_LONG_CONSTANT ("PREG_BACKTRACK_LIMIT_ERROR" , PHP_PCRE_BACKTRACK_LIMIT_ERROR , CONST_CS | CONST_PERSISTENT );
451
- REGISTER_LONG_CONSTANT ("PREG_RECURSION_LIMIT_ERROR" , PHP_PCRE_RECURSION_LIMIT_ERROR , CONST_CS | CONST_PERSISTENT );
452
- REGISTER_LONG_CONSTANT ("PREG_BAD_UTF8_ERROR" , PHP_PCRE_BAD_UTF8_ERROR , CONST_CS | CONST_PERSISTENT );
453
- REGISTER_LONG_CONSTANT ("PREG_BAD_UTF8_OFFSET_ERROR" , PHP_PCRE_BAD_UTF8_OFFSET_ERROR , CONST_CS | CONST_PERSISTENT );
454
- REGISTER_LONG_CONSTANT ("PREG_JIT_STACKLIMIT_ERROR" , PHP_PCRE_JIT_STACKLIMIT_ERROR , CONST_CS | CONST_PERSISTENT );
455
- version = _pcre2_config_str (PCRE2_CONFIG_VERSION );
456
- REGISTER_STRING_CONSTANT ("PCRE_VERSION" , version , CONST_CS | CONST_PERSISTENT );
457
- free (version );
458
- REGISTER_LONG_CONSTANT ("PCRE_VERSION_MAJOR" , PCRE2_MAJOR , CONST_CS | CONST_PERSISTENT );
459
- REGISTER_LONG_CONSTANT ("PCRE_VERSION_MINOR" , PCRE2_MINOR , CONST_CS | CONST_PERSISTENT );
446
+ php_pcre_version = _pcre2_config_str (PCRE2_CONFIG_VERSION );
460
447
461
- #ifdef HAVE_PCRE_JIT_SUPPORT
462
- REGISTER_BOOL_CONSTANT ("PCRE_JIT_SUPPORT" , 1 , CONST_CS | CONST_PERSISTENT );
463
- #else
464
- REGISTER_BOOL_CONSTANT ("PCRE_JIT_SUPPORT" , 0 , CONST_CS | CONST_PERSISTENT );
465
- #endif
448
+ register_php_pcre_symbols (module_number );
466
449
467
450
return SUCCESS ;
468
451
}
@@ -473,6 +456,8 @@ static PHP_MSHUTDOWN_FUNCTION(pcre)
473
456
{
474
457
UNREGISTER_INI_ENTRIES ();
475
458
459
+ free (php_pcre_version );
460
+
476
461
return SUCCESS ;
477
462
}
478
463
/* }}} */
0 commit comments