mirror of
https://github.com/php/php-src.git
synced 2025-08-18 15:08:55 +02:00
Fix compilation when PCRE is disabled.
This commit is contained in:
parent
a15c9a31eb
commit
1cf188ae1b
2 changed files with 37 additions and 16 deletions
|
@ -86,20 +86,25 @@ static void aggregate_methods(zend_class_entry *ce, zend_class_entry *from_ce, i
|
||||||
uint func_name_len;
|
uint func_name_len;
|
||||||
ulong num_key;
|
ulong num_key;
|
||||||
zval *list_hash = NULL;
|
zval *list_hash = NULL;
|
||||||
|
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
|
||||||
pcre *re = NULL;
|
pcre *re = NULL;
|
||||||
pcre_extra *re_extra = NULL;
|
pcre_extra *re_extra = NULL;
|
||||||
int re_options = 0;
|
int re_options = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Flip the array for easy lookup, or compile the regexp.
|
* Flip the array for easy lookup, or compile the regexp.
|
||||||
*/
|
*/
|
||||||
if (aggr_type == AGGREGATE_BY_LIST) {
|
if (aggr_type == AGGREGATE_BY_LIST) {
|
||||||
list_hash = array_to_hash(aggr_filter);
|
list_hash = array_to_hash(aggr_filter);
|
||||||
} else if (aggr_type == AGGREGATE_BY_REGEXP) {
|
}
|
||||||
|
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
|
||||||
|
else if (aggr_type == AGGREGATE_BY_REGEXP) {
|
||||||
if ((re = pcre_get_compiled_regex(Z_STRVAL_P(aggr_filter), &re_extra, &re_options)) == NULL) {
|
if ((re = pcre_get_compiled_regex(Z_STRVAL_P(aggr_filter), &re_extra, &re_options)) == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "Just because it's not nice doesn't mean it's not miraculous."
|
* "Just because it's not nice doesn't mean it's not miraculous."
|
||||||
|
@ -122,9 +127,13 @@ static void aggregate_methods(zend_class_entry *ce, zend_class_entry *from_ce, i
|
||||||
/* 2. private methods (heh, like we really have them) */
|
/* 2. private methods (heh, like we really have them) */
|
||||||
func_name[0] == '_' ||
|
func_name[0] == '_' ||
|
||||||
/* 3. explicitly excluded methods */
|
/* 3. explicitly excluded methods */
|
||||||
(aggr_type == AGGREGATE_BY_LIST && zend_hash_exists(Z_ARRVAL_P(list_hash), func_name, func_name_len)) ||
|
(aggr_type == AGGREGATE_BY_LIST && zend_hash_exists(Z_ARRVAL_P(list_hash), func_name, func_name_len))
|
||||||
|
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
|
||||||
|
||
|
||||||
/* 4. methods matching regexp as modified by the exclusion flag */
|
/* 4. methods matching regexp as modified by the exclusion flag */
|
||||||
(aggr_type == AGGREGATE_BY_REGEXP && (pcre_exec(re, re_extra, func_name, func_name_len-1, 0, 0, NULL, 0) < 0) ^ exclude) == 1) {
|
(aggr_type == AGGREGATE_BY_REGEXP && (pcre_exec(re, re_extra, func_name, func_name_len-1, 0, 0, NULL, 0) < 0) ^ exclude) == 1
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
zend_hash_move_forward_ex(&from_ce->function_table, &pos);
|
zend_hash_move_forward_ex(&from_ce->function_table, &pos);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -178,9 +187,11 @@ static void aggregate_properties(zval *obj, zend_class_entry *from_ce, int aggr_
|
||||||
uint prop_name_len;
|
uint prop_name_len;
|
||||||
ulong num_key;
|
ulong num_key;
|
||||||
zval *list_hash = NULL;
|
zval *list_hash = NULL;
|
||||||
|
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
|
||||||
pcre *re = NULL;
|
pcre *re = NULL;
|
||||||
pcre_extra *re_extra = NULL;
|
pcre_extra *re_extra = NULL;
|
||||||
int re_options = 0;
|
int re_options = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (!from_ce->constants_updated) {
|
if (!from_ce->constants_updated) {
|
||||||
zend_hash_apply_with_argument(&from_ce->default_properties, (apply_func_arg_t) zval_update_constant, (void *) 1 TSRMLS_CC);
|
zend_hash_apply_with_argument(&from_ce->default_properties, (apply_func_arg_t) zval_update_constant, (void *) 1 TSRMLS_CC);
|
||||||
|
@ -192,11 +203,14 @@ static void aggregate_properties(zval *obj, zend_class_entry *from_ce, int aggr_
|
||||||
*/
|
*/
|
||||||
if (aggr_type == AGGREGATE_BY_LIST) {
|
if (aggr_type == AGGREGATE_BY_LIST) {
|
||||||
list_hash = array_to_hash(aggr_filter);
|
list_hash = array_to_hash(aggr_filter);
|
||||||
} else if (aggr_type == AGGREGATE_BY_REGEXP) {
|
}
|
||||||
|
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
|
||||||
|
else if (aggr_type == AGGREGATE_BY_REGEXP) {
|
||||||
if ((re = pcre_get_compiled_regex(Z_STRVAL_P(aggr_filter), &re_extra, &re_options)) == NULL) {
|
if ((re = pcre_get_compiled_regex(Z_STRVAL_P(aggr_filter), &re_extra, &re_options)) == NULL) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* "Just because it's not nice doesn't mean it's not miraculous."
|
* "Just because it's not nice doesn't mean it's not miraculous."
|
||||||
|
@ -217,9 +231,13 @@ static void aggregate_properties(zval *obj, zend_class_entry *from_ce, int aggr_
|
||||||
* 1. private properties (heh, like we really have them) */
|
* 1. private properties (heh, like we really have them) */
|
||||||
if (prop_name[0] == '_' ||
|
if (prop_name[0] == '_' ||
|
||||||
/* 2. explicitly excluded properties */
|
/* 2. explicitly excluded properties */
|
||||||
(aggr_type == AGGREGATE_BY_LIST && zend_hash_exists(Z_ARRVAL_P(list_hash), prop_name, prop_name_len)) ||
|
(aggr_type == AGGREGATE_BY_LIST && zend_hash_exists(Z_ARRVAL_P(list_hash), prop_name, prop_name_len))
|
||||||
|
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
|
||||||
|
||
|
||||||
/* 3. properties matching regexp as modified by the exclusion flag */
|
/* 3. properties matching regexp as modified by the exclusion flag */
|
||||||
(aggr_type == AGGREGATE_BY_REGEXP && (pcre_exec(re, re_extra, prop_name, prop_name_len-1, 0, 0, NULL, 0) < 0) ^ exclude) == 1) {
|
(aggr_type == AGGREGATE_BY_REGEXP && (pcre_exec(re, re_extra, prop_name, prop_name_len-1, 0, 0, NULL, 0) < 0) ^ exclude) == 1
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
zend_hash_move_forward_ex(&from_ce->default_properties, &pos);
|
zend_hash_move_forward_ex(&from_ce->default_properties, &pos);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -478,15 +496,6 @@ PHP_FUNCTION(aggregate_methods_by_list)
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
|
||||||
/* {{{ proto void aggregate_methods_by_regexp(object obj, string class, string regexp [, bool exclude])
|
|
||||||
*/
|
|
||||||
PHP_FUNCTION(aggregate_methods_by_regexp)
|
|
||||||
{
|
|
||||||
aggregate(INTERNAL_FUNCTION_PARAM_PASSTHRU, AGGREGATE_METHODS, AGGREGATE_BY_REGEXP);
|
|
||||||
}
|
|
||||||
/* }}} */
|
|
||||||
|
|
||||||
|
|
||||||
/* {{{ proto void aggregate_properties(object obj, string class)
|
/* {{{ proto void aggregate_properties(object obj, string class)
|
||||||
*/
|
*/
|
||||||
PHP_FUNCTION(aggregate_properties)
|
PHP_FUNCTION(aggregate_properties)
|
||||||
|
@ -504,6 +513,15 @@ PHP_FUNCTION(aggregate_properties_by_list)
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
|
||||||
|
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
|
||||||
|
/* {{{ proto void aggregate_methods_by_regexp(object obj, string class, string regexp [, bool exclude])
|
||||||
|
*/
|
||||||
|
PHP_FUNCTION(aggregate_methods_by_regexp)
|
||||||
|
{
|
||||||
|
aggregate(INTERNAL_FUNCTION_PARAM_PASSTHRU, AGGREGATE_METHODS, AGGREGATE_BY_REGEXP);
|
||||||
|
}
|
||||||
|
/* }}} */
|
||||||
|
|
||||||
|
|
||||||
/* {{{ proto void aggregate_properties_by_regexp(object obj, string class, string regexp [, bool exclude])
|
/* {{{ proto void aggregate_properties_by_regexp(object obj, string class, string regexp [, bool exclude])
|
||||||
*/
|
*/
|
||||||
|
@ -512,6 +530,7 @@ PHP_FUNCTION(aggregate_properties_by_regexp)
|
||||||
aggregate(INTERNAL_FUNCTION_PARAM_PASSTHRU, AGGREGATE_PROPERTIES, AGGREGATE_BY_REGEXP);
|
aggregate(INTERNAL_FUNCTION_PARAM_PASSTHRU, AGGREGATE_PROPERTIES, AGGREGATE_BY_REGEXP);
|
||||||
}
|
}
|
||||||
/* }}} */
|
/* }}} */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* {{{ proto array aggregation_info(object obj)
|
/* {{{ proto array aggregation_info(object obj)
|
||||||
|
|
|
@ -819,10 +819,12 @@ function_entry basic_functions[] = {
|
||||||
PHP_FE(aggregate, first_arg_force_ref)
|
PHP_FE(aggregate, first_arg_force_ref)
|
||||||
PHP_FE(aggregate_methods, first_arg_force_ref)
|
PHP_FE(aggregate_methods, first_arg_force_ref)
|
||||||
PHP_FE(aggregate_methods_by_list, first_arg_force_ref)
|
PHP_FE(aggregate_methods_by_list, first_arg_force_ref)
|
||||||
PHP_FE(aggregate_methods_by_regexp, first_arg_force_ref)
|
|
||||||
PHP_FE(aggregate_properties, first_arg_force_ref)
|
PHP_FE(aggregate_properties, first_arg_force_ref)
|
||||||
PHP_FE(aggregate_properties_by_list, first_arg_force_ref)
|
PHP_FE(aggregate_properties_by_list, first_arg_force_ref)
|
||||||
|
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
|
||||||
|
PHP_FE(aggregate_methods_by_regexp, first_arg_force_ref)
|
||||||
PHP_FE(aggregate_properties_by_regexp, first_arg_force_ref)
|
PHP_FE(aggregate_properties_by_regexp, first_arg_force_ref)
|
||||||
|
#endif
|
||||||
PHP_FE(deaggregate, first_arg_force_ref)
|
PHP_FE(deaggregate, first_arg_force_ref)
|
||||||
PHP_FE(aggregation_info, first_arg_force_ref)
|
PHP_FE(aggregation_info, first_arg_force_ref)
|
||||||
{NULL, NULL, NULL}
|
{NULL, NULL, NULL}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue