mirror of
https://github.com/php/php-src.git
synced 2024-10-02 07:16:11 +00:00
Merge branch 'master' into jsond
Conflicts: ext/json/JSON_parser.c ext/json/JSON_parser.h ext/json/json.c ext/json/utf8_decode.c
This commit is contained in:
commit
b3823f5cab
14
TSRM/TSRM.c
14
TSRM/TSRM.c
@ -435,7 +435,7 @@ void *tsrm_new_interpreter_context(void)
|
||||
current = tsrm_tls_get();
|
||||
|
||||
allocate_new_resource(&new_ctx, thread_id);
|
||||
|
||||
|
||||
/* switch back to the context that was in use prior to our creation
|
||||
* of the new one */
|
||||
return tsrm_set_interpreter_context(current);
|
||||
@ -613,7 +613,7 @@ TSRM_API MUTEX_T tsrm_mutex_alloc(void)
|
||||
#elif defined(BETHREADS)
|
||||
mutexp = (beos_ben*)malloc(sizeof(beos_ben));
|
||||
mutexp->ben = 0;
|
||||
mutexp->sem = create_sem(1, "PHP sempahore");
|
||||
mutexp->sem = create_sem(1, "PHP sempahore");
|
||||
#endif
|
||||
#ifdef THR_DEBUG
|
||||
printf("Mutex created thread: %d\n",mythreadid());
|
||||
@ -642,7 +642,7 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
|
||||
st_mutex_destroy(mutexp);
|
||||
#elif defined(BETHREADS)
|
||||
delete_sem(mutexp->sem);
|
||||
free(mutexp);
|
||||
free(mutexp);
|
||||
#endif
|
||||
}
|
||||
#ifdef THR_DEBUG
|
||||
@ -676,8 +676,8 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
|
||||
#elif defined(TSRM_ST)
|
||||
return st_mutex_lock(mutexp);
|
||||
#elif defined(BETHREADS)
|
||||
if (atomic_add(&mutexp->ben, 1) != 0)
|
||||
return acquire_sem(mutexp->sem);
|
||||
if (atomic_add(&mutexp->ben, 1) != 0)
|
||||
return acquire_sem(mutexp->sem);
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
@ -708,9 +708,9 @@ TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
|
||||
#elif defined(TSRM_ST)
|
||||
return st_mutex_unlock(mutexp);
|
||||
#elif defined(BETHREADS)
|
||||
if (atomic_add(&mutexp->ben, -1) != 1)
|
||||
if (atomic_add(&mutexp->ben, -1) != 1)
|
||||
return release_sem(mutexp->sem);
|
||||
return 0;
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ typedef uintptr_t tsrm_uintptr_t;
|
||||
#elif defined(TSRM_ST)
|
||||
# include <st.h>
|
||||
#elif defined(BETHREADS)
|
||||
#include <kernel/OS.h>
|
||||
#include <kernel/OS.h>
|
||||
#include <TLS.h>
|
||||
#endif
|
||||
|
||||
@ -84,7 +84,7 @@ typedef struct {
|
||||
sem_id sem;
|
||||
int32 ben;
|
||||
} beos_ben;
|
||||
# define MUTEX_T beos_ben *
|
||||
# define MUTEX_T beos_ben *
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_SIGNAL_H
|
||||
@ -176,7 +176,7 @@ TSRM_API void *tsrm_get_ls_cache(void);
|
||||
/* BC only */
|
||||
#define TSRMLS_D void
|
||||
#define TSRMLS_DC
|
||||
#define TSRMLS_C
|
||||
#define TSRMLS_C
|
||||
#define TSRMLS_CC
|
||||
#define TSRMLS_FETCH()
|
||||
|
||||
|
@ -56,7 +56,7 @@ main()
|
||||
printf ("Token = '%s'\n", token);
|
||||
token = tsrm_strtok_r(NULL, "/\\", &last);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ TSRMLS_CACHE_UPDATE;
|
||||
globals->comspec = _strdup((GetVersion()<0x80000000)?"cmd.exe":"command.com");
|
||||
|
||||
/* Set it to INVALID_HANDLE_VALUE
|
||||
* It will be initialized correctly in tsrm_win32_access or set to
|
||||
* It will be initialized correctly in tsrm_win32_access or set to
|
||||
* NULL if no impersonation has been done.
|
||||
* the impersonated token can't be set here as the impersonation
|
||||
* will happen later, in fcgi_accept_request (or whatever is the
|
||||
|
@ -54,6 +54,7 @@ PHP X.Y UPGRADE NOTES
|
||||
. zend_function.common.num_args don't include the variadic argument anymore.
|
||||
. ob_start() no longer issues an E_ERROR, but instead an E_RECOVERABLE_ERROR in case an
|
||||
output buffer is created in an output buffer handler.
|
||||
. Add zend_memnstr_ex, which is based on string matching sunday algo.
|
||||
|
||||
- DBA
|
||||
. dba_delete() now returns false if the key was not found for the inifile
|
||||
|
@ -1258,7 +1258,7 @@ ZEND_API int zend_execute_scripts(int type, zval *retval, int file_count, ...) /
|
||||
if (!file_handle) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
op_array = zend_compile_file(file_handle, type);
|
||||
if (file_handle->opened_path) {
|
||||
zend_hash_str_add_empty_element(&EG(included_files), file_handle->opened_path, strlen(file_handle->opened_path));
|
||||
|
14
Zend/zend.h
14
Zend/zend.h
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -79,7 +79,7 @@ ZEND_TSRMLS_CACHE_EXTERN;
|
||||
#ifdef HAVE_NORETURN
|
||||
# if defined(ZEND_WIN32)
|
||||
ZEND_API ZEND_NORETURN void zend_error_noreturn(int type, const char *format, ...);
|
||||
# else
|
||||
# else
|
||||
void zend_error_noreturn(int type, const char *format, ...) ZEND_NORETURN;
|
||||
# endif
|
||||
#else
|
||||
@ -98,13 +98,13 @@ typedef struct _zend_serialize_data zend_serialize_data;
|
||||
typedef struct _zend_unserialize_data zend_unserialize_data;
|
||||
|
||||
typedef struct _zend_trait_method_reference {
|
||||
zend_string *method_name;
|
||||
zend_string *method_name;
|
||||
zend_class_entry *ce;
|
||||
zend_string *class_name;
|
||||
} zend_trait_method_reference;
|
||||
|
||||
typedef struct _zend_trait_precedence {
|
||||
zend_trait_method_reference *trait_method;
|
||||
zend_trait_method_reference *trait_method;
|
||||
union {
|
||||
zend_class_entry *ce;
|
||||
zend_string *class_name;
|
||||
@ -113,12 +113,12 @@ typedef struct _zend_trait_precedence {
|
||||
|
||||
typedef struct _zend_trait_alias {
|
||||
zend_trait_method_reference *trait_method;
|
||||
|
||||
|
||||
/**
|
||||
* name for method to be added
|
||||
*/
|
||||
zend_string *alias;
|
||||
|
||||
|
||||
/**
|
||||
* modifiers to be set on trait method
|
||||
*/
|
||||
@ -170,7 +170,7 @@ struct _zend_class_entry {
|
||||
uint32_t num_interfaces;
|
||||
uint32_t num_traits;
|
||||
zend_class_entry **interfaces;
|
||||
|
||||
|
||||
zend_class_entry **traits;
|
||||
zend_trait_alias **trait_aliases;
|
||||
zend_trait_precedence **trait_precedences;
|
||||
|
@ -423,7 +423,7 @@ static const char *zend_parse_arg_impl(int arg_num, zval *arg, va_list *va, cons
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case 'p':
|
||||
{
|
||||
char **p = va_arg(*va, char **);
|
||||
@ -1006,9 +1006,9 @@ ZEND_API void zend_update_class_constants(zend_class_entry *class_type) /* {{{ *
|
||||
zend_update_class_constants(class_type->parent);
|
||||
}
|
||||
#if ZTS
|
||||
CG(static_members_table)[(zend_intptr_t)(class_type->static_members_table)] = emalloc(sizeof(zval*) * class_type->default_static_members_count);
|
||||
CG(static_members_table)[(zend_intptr_t)(class_type->static_members_table)] = emalloc(sizeof(zval) * class_type->default_static_members_count);
|
||||
#else
|
||||
class_type->static_members_table = emalloc(sizeof(zval*) * class_type->default_static_members_count);
|
||||
class_type->static_members_table = emalloc(sizeof(zval) * class_type->default_static_members_count);
|
||||
#endif
|
||||
for (i = 0; i < class_type->default_static_members_count; i++) {
|
||||
p = &class_type->default_static_members_table[i];
|
||||
@ -1121,7 +1121,7 @@ ZEND_API void object_properties_load(zend_object *object, HashTable *properties)
|
||||
prop = zend_hash_update(object->properties, key, prop);
|
||||
zval_add_ref(prop);
|
||||
}
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@ -1176,7 +1176,7 @@ ZEND_API int add_assoc_function(zval *arg, const char *key, void (*function_ptr)
|
||||
ZEND_API int add_assoc_long_ex(zval *arg, const char *key, size_t key_len, zend_long n) /* {{{ */
|
||||
{
|
||||
zval *ret, tmp;
|
||||
|
||||
|
||||
ZVAL_LONG(&tmp, n);
|
||||
ret = zend_symtable_str_update(Z_ARRVAL_P(arg), key, key_len, &tmp);
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
@ -1186,7 +1186,7 @@ ZEND_API int add_assoc_long_ex(zval *arg, const char *key, size_t key_len, zend_
|
||||
ZEND_API int add_assoc_null_ex(zval *arg, const char *key, size_t key_len) /* {{{ */
|
||||
{
|
||||
zval *ret, tmp;
|
||||
|
||||
|
||||
ZVAL_NULL(&tmp);
|
||||
ret = zend_symtable_str_update(Z_ARRVAL_P(arg), key, key_len, &tmp);
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
@ -1196,7 +1196,7 @@ ZEND_API int add_assoc_null_ex(zval *arg, const char *key, size_t key_len) /* {{
|
||||
ZEND_API int add_assoc_bool_ex(zval *arg, const char *key, size_t key_len, int b) /* {{{ */
|
||||
{
|
||||
zval *ret, tmp;
|
||||
|
||||
|
||||
ZVAL_BOOL(&tmp, b);
|
||||
ret = zend_symtable_str_update(Z_ARRVAL_P(arg), key, key_len, &tmp);
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
@ -1206,7 +1206,7 @@ ZEND_API int add_assoc_bool_ex(zval *arg, const char *key, size_t key_len, int b
|
||||
ZEND_API int add_assoc_resource_ex(zval *arg, const char *key, size_t key_len, zend_resource *r) /* {{{ */
|
||||
{
|
||||
zval *ret, tmp;
|
||||
|
||||
|
||||
ZVAL_RES(&tmp, r);
|
||||
ret = zend_symtable_str_update(Z_ARRVAL_P(arg), key, key_len, &tmp);
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
@ -1216,7 +1216,7 @@ ZEND_API int add_assoc_resource_ex(zval *arg, const char *key, size_t key_len, z
|
||||
ZEND_API int add_assoc_double_ex(zval *arg, const char *key, size_t key_len, double d) /* {{{ */
|
||||
{
|
||||
zval *ret, tmp;
|
||||
|
||||
|
||||
ZVAL_DOUBLE(&tmp, d);
|
||||
ret = zend_symtable_str_update(Z_ARRVAL_P(arg), key, key_len, &tmp);
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
@ -1236,7 +1236,7 @@ ZEND_API int add_assoc_str_ex(zval *arg, const char *key, size_t key_len, zend_s
|
||||
ZEND_API int add_assoc_string_ex(zval *arg, const char *key, size_t key_len, char *str) /* {{{ */
|
||||
{
|
||||
zval *ret, tmp;
|
||||
|
||||
|
||||
ZVAL_STRING(&tmp, str);
|
||||
ret = zend_symtable_str_update(Z_ARRVAL_P(arg), key, key_len, &tmp);
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
@ -1246,7 +1246,7 @@ ZEND_API int add_assoc_string_ex(zval *arg, const char *key, size_t key_len, cha
|
||||
ZEND_API int add_assoc_stringl_ex(zval *arg, const char *key, size_t key_len, char *str, size_t length) /* {{{ */
|
||||
{
|
||||
zval *ret, tmp;
|
||||
|
||||
|
||||
ZVAL_STRINGL(&tmp, str, length);
|
||||
ret = zend_symtable_str_update(Z_ARRVAL_P(arg), key, key_len, &tmp);
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
@ -1256,7 +1256,7 @@ ZEND_API int add_assoc_stringl_ex(zval *arg, const char *key, size_t key_len, ch
|
||||
ZEND_API int add_assoc_zval_ex(zval *arg, const char *key, size_t key_len, zval *value) /* {{{ */
|
||||
{
|
||||
zval *ret;
|
||||
|
||||
|
||||
ret = zend_symtable_str_update(Z_ARRVAL_P(arg), key, key_len, value);
|
||||
return ret ? SUCCESS : FAILURE;
|
||||
}
|
||||
@ -1782,7 +1782,7 @@ ZEND_API void zend_collect_module_handlers(void) /* {{{ */
|
||||
module_post_deactivate_handlers = module_request_shutdown_handlers + shutdown_count + 1;
|
||||
module_post_deactivate_handlers[post_deactivate_count] = NULL;
|
||||
startup_count = 0;
|
||||
|
||||
|
||||
ZEND_HASH_FOREACH_PTR(&module_registry, module) {
|
||||
if (module->request_startup_func) {
|
||||
module_request_startup_handlers[startup_count++] = module;
|
||||
@ -2025,7 +2025,7 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, const zend_functio
|
||||
}
|
||||
if (ptr->arg_info) {
|
||||
zend_internal_function_info *info = (zend_internal_function_info*)ptr->arg_info;
|
||||
|
||||
|
||||
internal_function->arg_info = (zend_internal_arg_info*)ptr->arg_info+1;
|
||||
internal_function->num_args = ptr->num_args;
|
||||
/* Currently you cannot denote that the function can accept less arguments than num_args */
|
||||
@ -2651,7 +2651,7 @@ static int zend_is_callable_check_class(zend_string *name, zend_fcall_info_cache
|
||||
zend_string *lcname;
|
||||
ALLOCA_FLAG(use_heap);
|
||||
|
||||
STR_ALLOCA_ALLOC(lcname, name_len, use_heap);
|
||||
STR_ALLOCA_ALLOC(lcname, name_len, use_heap);
|
||||
zend_str_tolower_copy(lcname->val, name->val, name_len);
|
||||
|
||||
*strict_class = 0;
|
||||
@ -3015,7 +3015,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zend_object *object, uint
|
||||
if (error) {
|
||||
*error = NULL;
|
||||
}
|
||||
|
||||
|
||||
fcc->initialized = 0;
|
||||
fcc->calling_scope = NULL;
|
||||
fcc->called_scope = NULL;
|
||||
@ -3093,7 +3093,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zend_object *object, uint
|
||||
if (callable_name) {
|
||||
char *ptr;
|
||||
|
||||
|
||||
|
||||
*callable_name = zend_string_alloc(Z_STRLEN_P(obj) + Z_STRLEN_P(method) + sizeof("::") - 1, 0);
|
||||
ptr = (*callable_name)->val;
|
||||
memcpy(ptr, Z_STRVAL_P(obj), Z_STRLEN_P(obj));
|
||||
@ -3182,7 +3182,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zend_object *object, uint
|
||||
*callable_name = zend_string_alloc(ce->name->len + sizeof("::__invoke") - 1, 0);
|
||||
memcpy((*callable_name)->val, ce->name->val, ce->name->len);
|
||||
memcpy((*callable_name)->val + ce->name->len, "::__invoke", sizeof("::__invoke"));
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
/* break missing intentionally */
|
||||
@ -3749,7 +3749,7 @@ ZEND_API int zend_update_static_property(zend_class_entry *scope, const char *na
|
||||
ZEND_API int zend_update_static_property_null(zend_class_entry *scope, const char *name, size_t name_length) /* {{{ */
|
||||
{
|
||||
zval tmp;
|
||||
|
||||
|
||||
ZVAL_NULL(&tmp);
|
||||
return zend_update_static_property(scope, name, name_length, &tmp);
|
||||
}
|
||||
@ -3958,7 +3958,7 @@ ZEND_API void zend_ctor_make_null(zend_execute_data *execute_data) /* {{{ */
|
||||
if (Z_TYPE_P(EX(return_value)) == IS_OBJECT) {
|
||||
zend_object *object = Z_OBJ_P(EX(return_value));
|
||||
zend_execute_data *ex = EX(prev_execute_data);
|
||||
|
||||
|
||||
while (ex && Z_OBJ(ex->This) == object) {
|
||||
if (ex->func) {
|
||||
if (ZEND_USER_CODE(ex->func->type)) {
|
||||
|
@ -462,7 +462,7 @@ ZEND_API extern const zend_fcall_info_cache empty_fcall_info_cache;
|
||||
|
||||
/** Build zend_call_info/cache from a zval*
|
||||
*
|
||||
* Caller is responsible to provide a return value, otherwise the we will crash.
|
||||
* Caller is responsible to provide a return value, otherwise the we will crash.
|
||||
* fci->retval_ptr_ptr = NULL;
|
||||
* In order to pass parameters the following members need to be set:
|
||||
* fci->param_count = 0;
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -94,7 +94,7 @@ ZEND_API void* ZEND_FASTCALL _emalloc_huge(size_t size) ZEND_ATTRIBUTE_MALLOC ZE
|
||||
ZEND_ALLOCATOR(size) \
|
||||
: \
|
||||
_emalloc(size) \
|
||||
)
|
||||
)
|
||||
|
||||
# define _ZEND_BIN_DEALLOCATOR_DEF(_num, _size, _elements, _pages, x, y) \
|
||||
ZEND_API void ZEND_FASTCALL _efree_ ## _size(void *);
|
||||
|
@ -62,7 +62,7 @@ static zend_always_inline void* zend_arena_alloc(zend_arena **arena_ptr, size_t
|
||||
if (EXPECTED(size <= (size_t)(arena->end - ptr))) {
|
||||
arena->ptr = ptr + size;
|
||||
} else {
|
||||
size_t arena_size =
|
||||
size_t arena_size =
|
||||
UNEXPECTED((size + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena))) > (size_t)(arena->end - (char*) arena)) ?
|
||||
(size + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena))) :
|
||||
(size_t)(arena->end - (char*) arena);
|
||||
@ -72,7 +72,7 @@ static zend_always_inline void* zend_arena_alloc(zend_arena **arena_ptr, size_t
|
||||
new_arena->ptr = (char*) new_arena + ZEND_MM_ALIGNED_SIZE(sizeof(zend_arena)) + size;
|
||||
new_arena->end = (char*) new_arena + arena_size;
|
||||
new_arena->prev = arena;
|
||||
*arena_ptr = new_arena;
|
||||
*arena_ptr = new_arena;
|
||||
}
|
||||
|
||||
return (void*) ptr;
|
||||
|
@ -41,6 +41,6 @@
|
||||
#endif
|
||||
|
||||
/* for private applications */
|
||||
#define ZEND_BUILD_EXTRA
|
||||
#define ZEND_BUILD_EXTRA
|
||||
|
||||
#endif
|
||||
|
@ -541,7 +541,7 @@ ZEND_FUNCTION(strlen)
|
||||
ZEND_FUNCTION(strcmp)
|
||||
{
|
||||
zend_string *s1, *s2;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS", &s1, &s2) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -575,7 +575,7 @@ ZEND_FUNCTION(strncmp)
|
||||
ZEND_FUNCTION(strcasecmp)
|
||||
{
|
||||
zend_string *s1, *s2;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "SS", &s1, &s2) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -709,7 +709,7 @@ static int validate_constant_array(HashTable *ht) /* {{{ */
|
||||
zend_error(E_WARNING, "Constants may only evaluate to scalar values or arrays");
|
||||
ret = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
ht->u.v.nApplyCount--;
|
||||
@ -738,7 +738,7 @@ static void copy_constant_array(zval *dst, zval *src) /* {{{ */
|
||||
new_val = zend_hash_add_new(Z_ARRVAL_P(dst), key, val);
|
||||
} else {
|
||||
new_val = zend_hash_index_add_new(Z_ARRVAL_P(dst), idx, val);
|
||||
}
|
||||
}
|
||||
if (Z_TYPE_P(val) == IS_ARRAY) {
|
||||
if (!Z_IMMUTABLE_P(val)) {
|
||||
copy_constant_array(new_val, val);
|
||||
@ -825,7 +825,7 @@ repeat:
|
||||
zval_ptr_dtor(&val_free);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
|
||||
ZVAL_DUP(&c.value, val);
|
||||
zval_ptr_dtor(&val_free);
|
||||
register_constant:
|
||||
@ -856,7 +856,7 @@ ZEND_FUNCTION(defined)
|
||||
Z_PARAM_STR(name)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
#endif
|
||||
|
||||
|
||||
if (zend_get_constant_ex(name, NULL, ZEND_FETCH_CLASS_SILENT)) {
|
||||
RETURN_TRUE;
|
||||
} else {
|
||||
@ -911,7 +911,7 @@ ZEND_FUNCTION(get_parent_class)
|
||||
{
|
||||
zval *arg;
|
||||
zend_class_entry *ce = NULL;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|z", &arg) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -961,7 +961,7 @@ static void is_a_impl(INTERNAL_FUNCTION_PARAMETERS, zend_bool only_subclass) /*
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
#endif
|
||||
/*
|
||||
* allow_string - is_a default is no, is_subclass_of is yes.
|
||||
* allow_string - is_a default is no, is_subclass_of is yes.
|
||||
* if it's allowed, then the autoloader will be called if the class does not exist.
|
||||
* default behaviour is different, as 'is_a' used to be used to test mixed return values
|
||||
* and there is no easy way to deprecate this.
|
||||
@ -1147,7 +1147,7 @@ static int same_name(zend_string *key, zend_string *name) /* {{{ */
|
||||
if (key->len != name->len) {
|
||||
return 0;
|
||||
}
|
||||
lcname = zend_string_tolower(name);
|
||||
lcname = zend_string_tolower(name);
|
||||
ret = memcmp(lcname->val, key->val, key->len) == 0;
|
||||
zend_string_release(lcname);
|
||||
return ret;
|
||||
@ -1182,7 +1182,7 @@ ZEND_FUNCTION(get_class_methods)
|
||||
|
||||
ZEND_HASH_FOREACH_STR_KEY_PTR(&ce->function_table, key, mptr) {
|
||||
|
||||
if ((mptr->common.fn_flags & ZEND_ACC_PUBLIC)
|
||||
if ((mptr->common.fn_flags & ZEND_ACC_PUBLIC)
|
||||
|| (EG(scope) &&
|
||||
(((mptr->common.fn_flags & ZEND_ACC_PROTECTED) &&
|
||||
zend_check_protected(mptr->common.scope, EG(scope)))
|
||||
@ -1217,7 +1217,7 @@ ZEND_FUNCTION(get_class_methods)
|
||||
Checks if the class method exists */
|
||||
ZEND_FUNCTION(method_exists)
|
||||
{
|
||||
zval *klass;
|
||||
zval *klass;
|
||||
zend_string *method_name;
|
||||
zend_string *lcname;
|
||||
zend_class_entry * ce;
|
||||
@ -1249,17 +1249,17 @@ ZEND_FUNCTION(method_exists)
|
||||
} else {
|
||||
union _zend_function *func = NULL;
|
||||
|
||||
if (Z_TYPE_P(klass) == IS_OBJECT
|
||||
if (Z_TYPE_P(klass) == IS_OBJECT
|
||||
&& Z_OBJ_HT_P(klass)->get_method != NULL
|
||||
&& (func = Z_OBJ_HT_P(klass)->get_method(&Z_OBJ_P(klass), method_name, NULL)) != NULL
|
||||
) {
|
||||
if (func->type == ZEND_INTERNAL_FUNCTION
|
||||
if (func->type == ZEND_INTERNAL_FUNCTION
|
||||
&& (func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0
|
||||
) {
|
||||
/* Returns true to the fake Closure's __invoke */
|
||||
RETVAL_BOOL(func->common.scope == zend_ce_closure
|
||||
&& zend_string_equals_literal(method_name, ZEND_INVOKE_FUNC_NAME));
|
||||
|
||||
|
||||
zend_string_release(lcname);
|
||||
zend_string_release(func->common.function_name);
|
||||
efree(func);
|
||||
@ -1296,7 +1296,7 @@ ZEND_FUNCTION(property_exists)
|
||||
ce = zend_lookup_class(Z_STR_P(object));
|
||||
if (!ce) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
}
|
||||
} else if (Z_TYPE_P(object) == IS_OBJECT) {
|
||||
ce = Z_OBJCE_P(object);
|
||||
} else {
|
||||
@ -1312,7 +1312,7 @@ ZEND_FUNCTION(property_exists)
|
||||
ZVAL_STR(&property_z, property);
|
||||
|
||||
if (Z_TYPE_P(object) == IS_OBJECT &&
|
||||
Z_OBJ_HANDLER_P(object, has_property) &&
|
||||
Z_OBJ_HANDLER_P(object, has_property) &&
|
||||
Z_OBJ_HANDLER_P(object, has_property)(object, &property_z, 2, NULL)) {
|
||||
RETURN_TRUE;
|
||||
}
|
||||
@ -1412,7 +1412,7 @@ ZEND_FUNCTION(trait_exists)
|
||||
zend_string *trait_name, *lc_name;
|
||||
zend_class_entry *ce;
|
||||
zend_bool autoload = 1;
|
||||
|
||||
|
||||
#ifndef FAST_ZPP
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S|b", &trait_name, &autoload) == FAILURE) {
|
||||
return;
|
||||
@ -1424,7 +1424,7 @@ ZEND_FUNCTION(trait_exists)
|
||||
Z_PARAM_BOOL(autoload)
|
||||
ZEND_PARSE_PARAMETERS_END();
|
||||
#endif
|
||||
|
||||
|
||||
if (!autoload) {
|
||||
if (trait_name->val[0] == '\\') {
|
||||
/* Ignore leading "\" */
|
||||
@ -1437,7 +1437,7 @@ ZEND_FUNCTION(trait_exists)
|
||||
zend_string_release(lc_name);
|
||||
RETURN_BOOL(ce && ((ce->ce_flags & ZEND_ACC_TRAIT) > ZEND_ACC_EXPLICIT_ABSTRACT_CLASS));
|
||||
}
|
||||
|
||||
|
||||
ce = zend_lookup_class(trait_name);
|
||||
if (ce) {
|
||||
RETURN_BOOL((ce->ce_flags & ZEND_ACC_TRAIT) > ZEND_ACC_EXPLICIT_ABSTRACT_CLASS);
|
||||
@ -1447,14 +1447,14 @@ ZEND_FUNCTION(trait_exists)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto bool function_exists(string function_name)
|
||||
/* {{{ proto bool function_exists(string function_name)
|
||||
Checks if the function exists */
|
||||
ZEND_FUNCTION(function_exists)
|
||||
{
|
||||
zend_string *name;
|
||||
zend_function *func;
|
||||
zend_string *lcname;
|
||||
|
||||
|
||||
#ifndef FAST_ZPP
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &name) == FAILURE) {
|
||||
return;
|
||||
@ -1472,8 +1472,8 @@ ZEND_FUNCTION(function_exists)
|
||||
} else {
|
||||
lcname = zend_string_tolower(name);
|
||||
}
|
||||
|
||||
func = zend_hash_find_ptr(EG(function_table), lcname);
|
||||
|
||||
func = zend_hash_find_ptr(EG(function_table), lcname);
|
||||
zend_string_release(lcname);
|
||||
|
||||
/*
|
||||
@ -1500,9 +1500,9 @@ ZEND_FUNCTION(class_alias)
|
||||
}
|
||||
|
||||
ce = zend_lookup_class_ex(class_name, NULL, autoload);
|
||||
|
||||
|
||||
if (ce) {
|
||||
if (ce->type == ZEND_USER_CLASS) {
|
||||
if (ce->type == ZEND_USER_CLASS) {
|
||||
if (zend_register_class_alias_ex(alias_name, alias_name_len, ce) == SUCCESS) {
|
||||
RETURN_TRUE;
|
||||
} else {
|
||||
@ -1662,7 +1662,7 @@ ZEND_FUNCTION(restore_error_handler)
|
||||
{
|
||||
if (Z_TYPE(EG(user_error_handler)) != IS_UNDEF) {
|
||||
zval zeh;
|
||||
|
||||
|
||||
ZVAL_COPY_VALUE(&zeh, &EG(user_error_handler));
|
||||
ZVAL_UNDEF(&EG(user_error_handler));
|
||||
zval_ptr_dtor(&zeh);
|
||||
@ -1746,7 +1746,7 @@ static int copy_class_or_interface_name(zval *el, int num_args, va_list args, ze
|
||||
|
||||
if ((hash_key->key && hash_key->key->val[0] != 0)
|
||||
&& (comply_mask == (ce->ce_flags & mask))) {
|
||||
if (ce->refcount > 1 &&
|
||||
if (ce->refcount > 1 &&
|
||||
!same_name(hash_key->key, ce->name)) {
|
||||
add_next_index_str(array, zend_string_copy(hash_key->key));
|
||||
} else {
|
||||
@ -2071,7 +2071,7 @@ ZEND_FUNCTION(get_loaded_extensions)
|
||||
ZEND_FUNCTION(get_defined_constants)
|
||||
{
|
||||
zend_bool categorize = 0;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|b", &categorize) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -2141,7 +2141,7 @@ static void debug_backtrace_get_args(zend_execute_data *call, zval *arg_array) /
|
||||
ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(arg_array)) {
|
||||
if (call->func->type == ZEND_USER_FUNCTION) {
|
||||
uint32_t first_extra_arg = call->func->op_array.num_args;
|
||||
|
||||
|
||||
if (ZEND_CALL_NUM_ARGS(call) > first_extra_arg) {
|
||||
while (i < first_extra_arg) {
|
||||
if (Z_OPT_REFCOUNTED_P(p)) Z_ADDREF_P(p);
|
||||
@ -2210,7 +2210,7 @@ ZEND_FUNCTION(debug_print_backtrace)
|
||||
while (ptr && (limit == 0 || frameno < limit)) {
|
||||
frameno++;
|
||||
class_name = NULL;
|
||||
call_type = NULL;
|
||||
call_type = NULL;
|
||||
ZVAL_UNDEF(&arg_array);
|
||||
|
||||
skip = ptr;
|
||||
@ -2255,7 +2255,7 @@ ZEND_FUNCTION(debug_print_backtrace)
|
||||
func->common.scope->trait_aliases) ?
|
||||
zend_resolve_method_name(
|
||||
(object ? object->ce : func->common.scope), func)->val :
|
||||
(func->common.function_name ?
|
||||
(func->common.function_name ?
|
||||
func->common.function_name->val : NULL);
|
||||
} else {
|
||||
func = NULL;
|
||||
@ -2310,9 +2310,9 @@ ZEND_FUNCTION(debug_print_backtrace)
|
||||
function_name = "require_once";
|
||||
break;
|
||||
default:
|
||||
/* this can actually happen if you use debug_backtrace() in your error_handler and
|
||||
/* this can actually happen if you use debug_backtrace() in your error_handler and
|
||||
* you're in the top-scope */
|
||||
function_name = "unknown";
|
||||
function_name = "unknown";
|
||||
build_filename_arg = 0;
|
||||
break;
|
||||
}
|
||||
@ -2345,7 +2345,7 @@ ZEND_FUNCTION(debug_print_backtrace)
|
||||
!ZEND_USER_CODE(prev_call->func->common.type)) {
|
||||
prev = NULL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (prev->func && ZEND_USER_CODE(prev->func->common.type)) {
|
||||
zend_printf(") called at [%s:%d]\n", prev->func->op_array.filename->val, prev->opline->lineno);
|
||||
break;
|
||||
@ -2434,7 +2434,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
|
||||
add_assoc_long_ex(&stack_frame, "line", sizeof("line")-1, lineno);
|
||||
|
||||
/* try to fetch args only if an FCALL was just made - elsewise we're in the middle of a function
|
||||
* and debug_baktrace() might have been called by the error_handler. in this case we don't
|
||||
* and debug_baktrace() might have been called by the error_handler. in this case we don't
|
||||
* want to pop anything of the argument-stack */
|
||||
} else {
|
||||
zend_execute_data *prev_call = skip;
|
||||
@ -2447,7 +2447,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
|
||||
!(prev_call->func->common.type == ZEND_INTERNAL_FUNCTION &&
|
||||
(prev_call->func->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER))) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (prev->func && ZEND_USER_CODE(prev->func->common.type)) {
|
||||
add_assoc_str_ex(&stack_frame, "file", sizeof("file")-1, zend_string_copy(prev->func->op_array.filename));
|
||||
add_assoc_long_ex(&stack_frame, "line", sizeof("line")-1, prev->opline->lineno);
|
||||
@ -2474,7 +2474,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
|
||||
func->common.scope->trait_aliases) ?
|
||||
zend_resolve_method_name(
|
||||
(object ? object->ce : func->common.scope), func)->val :
|
||||
(func->common.function_name ?
|
||||
(func->common.function_name ?
|
||||
func->common.function_name->val : NULL);
|
||||
} else {
|
||||
func = NULL;
|
||||
@ -2489,7 +2489,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
|
||||
add_assoc_str_ex(&stack_frame, "class", sizeof("class")-1, zend_string_copy(func->common.scope->name));
|
||||
} else {
|
||||
add_assoc_str_ex(&stack_frame, "class", sizeof("class")-1, zend_string_copy(object->ce->name));
|
||||
|
||||
|
||||
}
|
||||
if ((options & DEBUG_BACKTRACE_PROVIDE_OBJECT) != 0) {
|
||||
zval zv;
|
||||
@ -2504,7 +2504,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
|
||||
add_assoc_string_ex(&stack_frame, "type", sizeof("type")-1, "::");
|
||||
}
|
||||
|
||||
if ((options & DEBUG_BACKTRACE_IGNORE_ARGS) == 0 &&
|
||||
if ((options & DEBUG_BACKTRACE_IGNORE_ARGS) == 0 &&
|
||||
func->type != ZEND_EVAL_CODE) {
|
||||
zval args;
|
||||
|
||||
@ -2538,9 +2538,9 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
|
||||
function_name = "require_once";
|
||||
break;
|
||||
default:
|
||||
/* this can actually happen if you use debug_backtrace() in your error_handler and
|
||||
/* this can actually happen if you use debug_backtrace() in your error_handler and
|
||||
* you're in the top-scope */
|
||||
function_name = "unknown";
|
||||
function_name = "unknown";
|
||||
build_filename_arg = 0;
|
||||
break;
|
||||
}
|
||||
@ -2563,7 +2563,7 @@ ZEND_API void zend_fetch_debug_backtrace(zval *return_value, int skip_last, int
|
||||
|
||||
zend_hash_next_index_insert_new(Z_ARRVAL_P(return_value), &stack_frame);
|
||||
|
||||
include_filename = filename;
|
||||
include_filename = filename;
|
||||
|
||||
call = skip;
|
||||
ptr = skip->prev_execute_data;
|
||||
@ -2577,7 +2577,7 @@ ZEND_FUNCTION(debug_backtrace)
|
||||
{
|
||||
zend_long options = DEBUG_BACKTRACE_PROVIDE_OBJECT;
|
||||
zend_long limit = 0;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "|ll", &options, &limit) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
@ -2616,7 +2616,7 @@ ZEND_FUNCTION(get_extension_funcs)
|
||||
int array;
|
||||
zend_module_entry *module;
|
||||
zend_function *zif;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "S", &extension_name) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
@ -68,7 +68,7 @@ ZEND_METHOD(Closure, __invoke) /* {{{ */
|
||||
|
||||
/* {{{ proto mixed Closure::call(object $to [, mixed $parameter] [, mixed $...] )
|
||||
Call closure, binding to a given object with its class as the scope */
|
||||
ZEND_METHOD(Closure, call)
|
||||
ZEND_METHOD(Closure, call)
|
||||
{
|
||||
zval *zclosure, *newthis, closure_result;
|
||||
zend_closure *closure;
|
||||
@ -81,10 +81,10 @@ ZEND_METHOD(Closure, call)
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "o*", &newthis, &my_params, &my_param_count) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
zclosure = getThis();
|
||||
closure = (zend_closure *)Z_OBJ_P(zclosure);
|
||||
|
||||
|
||||
if (closure->func.common.fn_flags & ZEND_ACC_STATIC) {
|
||||
zend_error(E_WARNING, "Cannot bind an instance to a static closure");
|
||||
return;
|
||||
@ -109,7 +109,7 @@ ZEND_METHOD(Closure, call)
|
||||
fci.param_count = my_param_count;
|
||||
fci.object = fci_cache.object = Z_OBJ_P(newthis);
|
||||
fci_cache.initialized = 1;
|
||||
|
||||
|
||||
my_function = *fci_cache.function_handler;
|
||||
/* use scope of passed object */
|
||||
my_function.common.scope = Z_OBJCE_P(newthis);
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -1441,7 +1441,7 @@ ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
uint32_t zend_get_class_fetch_type(zend_string *name) /* {{{ */
|
||||
uint32_t zend_get_class_fetch_type(zend_string *name) /* {{{ */
|
||||
{
|
||||
if (zend_string_equals_literal_ci(name, "self")) {
|
||||
return ZEND_FETCH_CLASS_SELF;
|
||||
@ -1642,7 +1642,7 @@ static inline zend_bool zend_string_equals_str_ci(zend_string *str1, zend_string
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static void zend_adjust_for_fetch_type(zend_op *opline, uint32_t type) /* {{{ */
|
||||
static void zend_adjust_for_fetch_type(zend_op *opline, uint32_t type) /* {{{ */
|
||||
{
|
||||
switch (type & BP_VAR_MASK) {
|
||||
case BP_VAR_R:
|
||||
@ -1669,7 +1669,7 @@ static void zend_adjust_for_fetch_type(zend_op *opline, uint32_t type) /* {{{ */
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static inline void zend_make_var_result(znode *result, zend_op *opline) /* {{{ */
|
||||
static inline void zend_make_var_result(znode *result, zend_op *opline) /* {{{ */
|
||||
{
|
||||
opline->result_type = IS_VAR;
|
||||
opline->result.var = get_temporary_variable(CG(active_op_array));
|
||||
@ -1685,7 +1685,7 @@ static inline void zend_make_tmp_result(znode *result, zend_op *opline) /* {{{ *
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static zend_op *zend_emit_op(znode *result, zend_uchar opcode, znode *op1, znode *op2) /* {{{ */
|
||||
static zend_op *zend_emit_op(znode *result, zend_uchar opcode, znode *op1, znode *op2) /* {{{ */
|
||||
{
|
||||
zend_op *opline = get_next_op(CG(active_op_array));
|
||||
opline->opcode = opcode;
|
||||
@ -1787,7 +1787,7 @@ static inline void zend_update_jump_target(uint32_t opnum_jump, uint32_t opnum_t
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static inline void zend_update_jump_target_to_next(uint32_t opnum_jump) /* {{{ */
|
||||
static inline void zend_update_jump_target_to_next(uint32_t opnum_jump) /* {{{ */
|
||||
{
|
||||
zend_update_jump_target(opnum_jump, get_next_op_number(CG(active_op_array)));
|
||||
}
|
||||
@ -1952,7 +1952,7 @@ static zend_op *zend_compile_class_ref(znode *result, zend_ast *name_ast) /* {{{
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static int zend_try_compile_cv(znode *result, zend_ast *ast) /* {{{ */
|
||||
static int zend_try_compile_cv(znode *result, zend_ast *ast) /* {{{ */
|
||||
{
|
||||
zend_ast *name_ast = ast->child[0];
|
||||
if (name_ast->kind == ZEND_AST_ZVAL) {
|
||||
@ -2423,7 +2423,7 @@ uint32_t zend_compile_args(zend_ast *ast, zend_function *fbc) /* {{{ */
|
||||
if (arg->kind == ZEND_AST_UNPACK) {
|
||||
uses_arg_unpack = 1;
|
||||
fbc = NULL;
|
||||
|
||||
|
||||
zend_compile_expr(&arg_node, arg->child[0]);
|
||||
opline = zend_emit_op(NULL, ZEND_SEND_UNPACK, &arg_node, NULL);
|
||||
opline->op2.num = arg_count;
|
||||
@ -2618,7 +2618,7 @@ int zend_compile_func_typecheck(znode *result, zend_ast_list *args, uint32_t typ
|
||||
if (args->children != 1 || args->child[0]->kind == ZEND_AST_UNPACK) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
|
||||
zend_compile_expr(&arg_node, args->child[0]);
|
||||
opline = zend_emit_op_tmp(result, ZEND_TYPE_CHECK, &arg_node, NULL);
|
||||
opline->extended_value = type;
|
||||
@ -2878,7 +2878,7 @@ void zend_compile_method_call(znode *result, zend_ast *ast, uint32_t type) /* {{
|
||||
|
||||
zend_compile_expr(&method_node, method_ast);
|
||||
opline = zend_emit_op(NULL, ZEND_INIT_METHOD_CALL, &obj_node, NULL);
|
||||
|
||||
|
||||
if (method_node.op_type == IS_CONST) {
|
||||
if (Z_TYPE(method_node.u.constant) != IS_STRING) {
|
||||
zend_error_noreturn(E_COMPILE_ERROR, "Method name must be a string");
|
||||
@ -3451,7 +3451,7 @@ void zend_compile_if(zend_ast *ast) /* {{{ */
|
||||
zend_ast_list *list = zend_ast_get_list(ast);
|
||||
uint32_t i;
|
||||
uint32_t *jmp_opnums = NULL;
|
||||
|
||||
|
||||
if (list->children > 1) {
|
||||
jmp_opnums = safe_emalloc(sizeof(uint32_t), list->children - 1, 0);
|
||||
}
|
||||
@ -3786,7 +3786,7 @@ void zend_compile_params(zend_ast *ast) /* {{{ */
|
||||
if (list->children == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
arg_infos = safe_emalloc(sizeof(zend_arg_info), list->children, 0);
|
||||
for (i = 0; i < list->children; ++i) {
|
||||
zend_ast *param_ast = list->child[i];
|
||||
@ -3907,7 +3907,7 @@ void zend_compile_params(zend_ast *ast) /* {{{ */
|
||||
/* Don't count the variadic argument */
|
||||
if (op_array->fn_flags & ZEND_ACC_VARIADIC) {
|
||||
op_array->num_args--;
|
||||
}
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@ -4166,7 +4166,7 @@ void zend_compile_func_decl(znode *result, zend_ast *ast) /* {{{ */
|
||||
zend_op_array *op_array = zend_arena_alloc(&CG(arena), sizeof(zend_op_array));
|
||||
|
||||
// TODO.AST interactive (not just here - also bpc etc!)
|
||||
|
||||
|
||||
init_op_array(op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE);
|
||||
|
||||
op_array->fn_flags |= decl->flags;
|
||||
@ -4355,7 +4355,7 @@ static void zend_compile_trait_precedence(zend_ast *ast) /* {{{ */
|
||||
{
|
||||
zend_ast *method_ref_ast = ast->child[0];
|
||||
zend_ast *insteadof_ast = ast->child[1];
|
||||
|
||||
|
||||
zend_trait_precedence *precedence = emalloc(sizeof(zend_trait_precedence));
|
||||
precedence->trait_method = zend_compile_method_ref(method_ref_ast);
|
||||
precedence->exclude_from_classes
|
||||
@ -5313,7 +5313,7 @@ void zend_compile_conditional(znode *result, zend_ast *ast) /* {{{ */
|
||||
zend_compile_shorthand_conditional(result, ast);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
zend_compile_expr(&cond_node, cond_ast);
|
||||
|
||||
opnum_jmpz = zend_emit_cond_jump(ZEND_JMPZ, &cond_node, 0);
|
||||
@ -5876,7 +5876,7 @@ void zend_compile_const_expr_class_const(zend_ast **ast_ptr) /* {{{ */
|
||||
zend_error_noreturn(E_COMPILE_ERROR,
|
||||
"\"static::\" is not allowed in compile-time constants");
|
||||
}
|
||||
|
||||
|
||||
if (ZEND_FETCH_CLASS_DEFAULT == fetch_type) {
|
||||
class_name = zend_resolve_class_name_ast(class_ast);
|
||||
} else {
|
||||
|
@ -266,7 +266,7 @@ typedef struct _zend_property_info {
|
||||
((offset - OBJ_PROP_TO_OFFSET(0)) / sizeof(zval))
|
||||
|
||||
/* arg_info for internal functions */
|
||||
typedef struct _zend_internal_arg_info {
|
||||
typedef struct _zend_internal_arg_info {
|
||||
const char *name;
|
||||
const char *class_name;
|
||||
zend_uchar type_hint;
|
||||
@ -425,7 +425,7 @@ struct _zend_execute_data {
|
||||
#define ZEND_SET_CALL_INFO(call, info) do { \
|
||||
Z_TYPE_INFO((call)->This) = IS_OBJECT_EX | ((info) << 24); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define ZEND_ADD_CALL_FLAG(call, info) do { \
|
||||
Z_TYPE_INFO((call)->This) |= ((info) << 24); \
|
||||
} while (0)
|
||||
@ -495,7 +495,7 @@ struct _zend_execute_data {
|
||||
/* convert jump target back from run-time to compile-time */
|
||||
# define ZEND_PASS_TWO_UNDO_JMP_TARGET(op_array, opline, node) do { \
|
||||
(node).opline_num = ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, (node).jmp_offset); \
|
||||
} while (0)
|
||||
} while (0)
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -64,7 +64,7 @@ typedef unsigned int uint;
|
||||
/* This will cause the compilation process to be MUCH longer, but will generate
|
||||
* a much quicker PHP binary
|
||||
*/
|
||||
/*
|
||||
/*
|
||||
#undef inline
|
||||
#ifdef ZEND_WIN32_FORCE_INLINE
|
||||
# define inline __forceinline
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -164,7 +164,7 @@ void clean_non_persistent_constants(void)
|
||||
ZEND_API void zend_register_null_constant(const char *name, size_t name_len, int flags, int module_number)
|
||||
{
|
||||
zend_constant c;
|
||||
|
||||
|
||||
ZVAL_NULL(&c.value);
|
||||
c.flags = flags;
|
||||
c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
|
||||
@ -175,7 +175,7 @@ ZEND_API void zend_register_null_constant(const char *name, size_t name_len, int
|
||||
ZEND_API void zend_register_bool_constant(const char *name, size_t name_len, zend_bool bval, int flags, int module_number)
|
||||
{
|
||||
zend_constant c;
|
||||
|
||||
|
||||
ZVAL_BOOL(&c.value, bval);
|
||||
c.flags = flags;
|
||||
c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
|
||||
@ -186,7 +186,7 @@ ZEND_API void zend_register_bool_constant(const char *name, size_t name_len, zen
|
||||
ZEND_API void zend_register_long_constant(const char *name, size_t name_len, zend_long lval, int flags, int module_number)
|
||||
{
|
||||
zend_constant c;
|
||||
|
||||
|
||||
ZVAL_LONG(&c.value, lval);
|
||||
c.flags = flags;
|
||||
c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
|
||||
@ -198,7 +198,7 @@ ZEND_API void zend_register_long_constant(const char *name, size_t name_len, zen
|
||||
ZEND_API void zend_register_double_constant(const char *name, size_t name_len, double dval, int flags, int module_number)
|
||||
{
|
||||
zend_constant c;
|
||||
|
||||
|
||||
ZVAL_DOUBLE(&c.value, dval);
|
||||
c.flags = flags;
|
||||
c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
|
||||
@ -210,7 +210,7 @@ ZEND_API void zend_register_double_constant(const char *name, size_t name_len, d
|
||||
ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len, char *strval, size_t strlen, int flags, int module_number)
|
||||
{
|
||||
zend_constant c;
|
||||
|
||||
|
||||
ZVAL_NEW_STR(&c.value, zend_string_init(strval, strlen, flags & CONST_PERSISTENT));
|
||||
c.flags = flags;
|
||||
c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
|
||||
@ -238,7 +238,7 @@ static zend_constant *zend_get_special_constant(const char *name, size_t name_le
|
||||
if (EG(scope) && EG(scope)->name) {
|
||||
size_t const_name_len;
|
||||
zend_string *const_name;
|
||||
|
||||
|
||||
const_name_len = sizeof("\0__CLASS__") + EG(scope)->name->len;
|
||||
const_name = zend_string_alloc(const_name_len, 0);
|
||||
memcpy(const_name->val, "\0__CLASS__", sizeof("\0__CLASS__")-1);
|
||||
@ -521,7 +521,7 @@ ZEND_API int zend_register_constant(zend_constant *c)
|
||||
if ((c->name->len == sizeof("__COMPILER_HALT_OFFSET__")-1
|
||||
&& !memcmp(name->val, "__COMPILER_HALT_OFFSET__", sizeof("__COMPILER_HALT_OFFSET__")-1))
|
||||
|| zend_hash_add_constant(EG(zend_constants), name, c) == NULL) {
|
||||
|
||||
|
||||
/* The internal __COMPILER_HALT_OFFSET__ is prefixed by NULL byte */
|
||||
if (c->name->val[0] == '\0' && c->name->len > sizeof("\0__COMPILER_HALT_OFFSET__")-1
|
||||
&& memcmp(name->val, "\0__COMPILER_HALT_OFFSET__", sizeof("\0__COMPILER_HALT_OFFSET__")) == 0) {
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -130,7 +130,7 @@ ZEND_API void zend_throw_exception_internal(zval *exception) /* {{{ */
|
||||
ZEND_API void zend_clear_exception(void) /* {{{ */
|
||||
{
|
||||
if (EG(prev_exception)) {
|
||||
|
||||
|
||||
OBJ_RELEASE(EG(prev_exception));
|
||||
EG(prev_exception) = NULL;
|
||||
}
|
||||
@ -499,7 +499,7 @@ static void _build_trace_string(smart_str *str, HashTable *ht, uint32_t num) /*
|
||||
if (Z_TYPE_P(tmp) == IS_ARRAY) {
|
||||
size_t last_len = str->s->len;
|
||||
zval *arg;
|
||||
|
||||
|
||||
ZEND_HASH_FOREACH_VAL(Z_ARRVAL_P(tmp), arg) {
|
||||
_build_trace_args(arg, str);
|
||||
} ZEND_HASH_FOREACH_END();
|
||||
@ -525,7 +525,7 @@ ZEND_METHOD(exception, getTraceAsString)
|
||||
uint32_t num = 0;
|
||||
|
||||
DEFAULT_0_PARAMS;
|
||||
|
||||
|
||||
trace = zend_read_property(default_exception_ce, getThis(), "trace", sizeof("trace")-1, 1);
|
||||
ZEND_HASH_FOREACH_NUM_KEY_VAL(Z_ARRVAL_P(trace), index, frame) {
|
||||
if (Z_TYPE_P(frame) != IS_ARRAY) {
|
||||
@ -541,7 +541,7 @@ ZEND_METHOD(exception, getTraceAsString)
|
||||
smart_str_appends(&str, " {main}");
|
||||
smart_str_0(&str);
|
||||
|
||||
RETURN_NEW_STR(str.s);
|
||||
RETURN_NEW_STR(str.s);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
@ -586,9 +586,9 @@ ZEND_METHOD(exception, __toString)
|
||||
zend_string *str;
|
||||
zend_fcall_info fci;
|
||||
zval fname;
|
||||
|
||||
|
||||
DEFAULT_0_PARAMS;
|
||||
|
||||
|
||||
str = STR_EMPTY_ALLOC();
|
||||
|
||||
exception = getThis();
|
||||
@ -798,7 +798,7 @@ ZEND_API void zend_exception_error(zend_object *ex, int severity) /* {{{ */
|
||||
{
|
||||
zval exception;
|
||||
zend_class_entry *ce_exception;
|
||||
|
||||
|
||||
ZVAL_OBJ(&exception, ex);
|
||||
ce_exception = Z_OBJCE(exception);
|
||||
if (instanceof_function(ce_exception, default_exception_ce)) {
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -170,7 +170,7 @@ ZEND_API void* zend_vm_stack_extend(size_t size)
|
||||
stack->top = EG(vm_stack_top);
|
||||
EG(vm_stack) = stack = zend_vm_stack_new_page(
|
||||
EXPECTED(size < ZEND_VM_STACK_FREE_PAGE_SIZE) ?
|
||||
ZEND_VM_STACK_PAGE_SIZE : ZEND_VM_STACK_PAGE_ALIGNED_SIZE(size),
|
||||
ZEND_VM_STACK_PAGE_SIZE : ZEND_VM_STACK_PAGE_ALIGNED_SIZE(size),
|
||||
stack);
|
||||
ptr = stack->top;
|
||||
EG(vm_stack_top) = (void*)(((char*)ptr) + size);
|
||||
@ -399,7 +399,7 @@ static zend_always_inline zval *_get_zval_ptr(int op_type, znode_op node, const
|
||||
ZEND_ASSERT(op_type == IS_VAR);
|
||||
return _get_zval_ptr_var(node.var, execute_data, should_free);
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
*should_free = NULL;
|
||||
if (op_type == IS_CONST) {
|
||||
return EX_CONSTANT(node);
|
||||
@ -419,7 +419,7 @@ static zend_always_inline zval *_get_zval_ptr_deref(int op_type, znode_op node,
|
||||
ZEND_ASSERT(op_type == IS_VAR);
|
||||
return _get_zval_ptr_var_deref(node.var, execute_data, should_free);
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
*should_free = NULL;
|
||||
if (op_type == IS_CONST) {
|
||||
return EX_CONSTANT(node);
|
||||
@ -831,7 +831,7 @@ fast_assign:
|
||||
|
||||
if (!zobj->ce->__set) {
|
||||
if (EXPECTED(zobj->properties == NULL)) {
|
||||
rebuild_object_properties(zobj);
|
||||
rebuild_object_properties(zobj);
|
||||
}
|
||||
/* separate our value if necessary */
|
||||
if (value_type == IS_CONST) {
|
||||
@ -1034,7 +1034,7 @@ static zend_always_inline HashTable *zend_get_target_symbol_table(zend_execute_d
|
||||
{
|
||||
HashTable *ht;
|
||||
|
||||
if (EXPECTED(fetch_type == ZEND_FETCH_GLOBAL_LOCK) ||
|
||||
if (EXPECTED(fetch_type == ZEND_FETCH_GLOBAL_LOCK) ||
|
||||
EXPECTED(fetch_type == ZEND_FETCH_GLOBAL)) {
|
||||
ht = &EG(symbol_table).ht;
|
||||
} else if (EXPECTED(fetch_type == ZEND_FETCH_STATIC)) {
|
||||
@ -1109,7 +1109,7 @@ str_index:
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
} else {
|
||||
switch (type) {
|
||||
case BP_VAR_R:
|
||||
zend_error(E_NOTICE, "Undefined index: %s", offset_key->val);
|
||||
@ -1239,7 +1239,7 @@ convert_to_array:
|
||||
}
|
||||
|
||||
zend_check_string_offset(dim, type);
|
||||
|
||||
|
||||
ZVAL_INDIRECT(result, NULL); /* wrong string offset */
|
||||
} else if (EXPECTED(Z_TYPE_P(container) == IS_OBJECT)) {
|
||||
if (!Z_OBJ_HT_P(container)->read_dimension) {
|
||||
@ -1711,7 +1711,7 @@ static zend_always_inline void i_init_execute_data(zend_execute_data *execute_da
|
||||
zend_attach_symbol_table(execute_data);
|
||||
} else {
|
||||
uint32_t first_extra_arg, num_args;
|
||||
|
||||
|
||||
/* Handle arguments */
|
||||
first_extra_arg = op_array->num_args;
|
||||
num_args = EX_NUM_ARGS();
|
||||
@ -1848,7 +1848,7 @@ static zend_execute_data *zend_vm_stack_copy_call_frame(zend_execute_data *call,
|
||||
{
|
||||
zend_execute_data *new_call;
|
||||
int used_stack = (EG(vm_stack_top) - (zval*)call) + additional_args;
|
||||
|
||||
|
||||
/* copy call frame into new stack segment */
|
||||
new_call = zend_vm_stack_extend(used_stack * sizeof(zval));
|
||||
*new_call = *call;
|
||||
|
@ -54,7 +54,7 @@ ZEND_API void zend_verify_arg_error(int error_type, const zend_function *zf, uin
|
||||
static zend_always_inline zval* zend_assign_to_variable(zval *variable_ptr, zval *value, zend_uchar value_type)
|
||||
{
|
||||
do {
|
||||
if (UNEXPECTED(Z_REFCOUNTED_P(variable_ptr))) {
|
||||
if (UNEXPECTED(Z_REFCOUNTED_P(variable_ptr))) {
|
||||
zend_refcounted *garbage;
|
||||
|
||||
if (Z_ISREF_P(variable_ptr)) {
|
||||
@ -159,7 +159,7 @@ static zend_always_inline zend_execute_data *zend_vm_stack_push_call_frame_ex(ui
|
||||
static zend_always_inline uint32_t zend_vm_calc_used_stack(uint32_t num_args, zend_function *func)
|
||||
{
|
||||
uint32_t used_stack = ZEND_CALL_FRAME_SLOT + num_args;
|
||||
|
||||
|
||||
if (ZEND_USER_CODE(func->type)) {
|
||||
used_stack += func->op_array.last_var + func->op_array.T - MIN(func->op_array.num_args, num_args);
|
||||
}
|
||||
@ -169,7 +169,7 @@ static zend_always_inline uint32_t zend_vm_calc_used_stack(uint32_t num_args, ze
|
||||
static zend_always_inline zend_execute_data *zend_vm_stack_push_call_frame(uint32_t call_info, zend_function *func, uint32_t num_args, zend_class_entry *called_scope, zend_object *object, zend_execute_data *prev)
|
||||
{
|
||||
uint32_t used_stack = zend_vm_calc_used_stack(num_args, func);
|
||||
|
||||
|
||||
return zend_vm_stack_push_call_frame_ex(used_stack, call_info,
|
||||
func, num_args, called_scope, object, prev);
|
||||
}
|
||||
|
@ -64,7 +64,7 @@ static void zend_handle_sigsegv(int dummy) /* {{{ */
|
||||
signal(SIGSEGV, SIG_DFL);
|
||||
}
|
||||
{
|
||||
|
||||
|
||||
fprintf(stderr, "SIGSEGV caught on opcode %d on opline %d of %s() at %s:%d\n\n",
|
||||
active_opline->opcode,
|
||||
active_opline-EG(active_op_array)->opcodes,
|
||||
@ -968,7 +968,7 @@ ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, const zval *k
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/* Verify class name before passing it to __autoload() */
|
||||
if (strspn(name->val, "0123456789_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\177\200\201\202\203\204\205\206\207\210\211\212\213\214\215\216\217\220\221\222\223\224\225\226\227\230\231\232\233\234\235\236\237\240\241\242\243\244\245\246\247\250\251\252\253\254\255\256\257\260\261\262\263\264\265\266\267\270\271\272\273\274\275\276\277\300\301\302\303\304\305\306\307\310\311\312\313\314\315\316\317\320\321\322\323\324\325\326\327\330\331\332\333\334\335\336\337\340\341\342\343\344\345\346\347\350\351\352\353\354\355\356\357\360\361\362\363\364\365\366\367\370\371\372\373\374\375\376\377\\") != name->len) {
|
||||
if (!key) {
|
||||
@ -976,7 +976,7 @@ ZEND_API zend_class_entry *zend_lookup_class_ex(zend_string *name, const zval *k
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
if (EG(in_autoload) == NULL) {
|
||||
ALLOC_HASHTABLE(EG(in_autoload));
|
||||
zend_hash_init(EG(in_autoload), 8, NULL, NULL, 0);
|
||||
@ -1067,7 +1067,7 @@ ZEND_API int zend_eval_stringl(char *str, size_t str_len, zval *retval_ptr, char
|
||||
if (new_op_array) {
|
||||
zval local_retval;
|
||||
|
||||
EG(no_extensions)=1;
|
||||
EG(no_extensions)=1;
|
||||
|
||||
zend_try {
|
||||
ZVAL_UNDEF(&local_retval);
|
||||
@ -1455,7 +1455,7 @@ ZEND_API void zend_attach_symbol_table(zend_execute_data *execute_data) /* {{{ *
|
||||
int i;
|
||||
zend_op_array *op_array = &execute_data->func->op_array;
|
||||
HashTable *ht = &execute_data->symbol_table->ht;
|
||||
|
||||
|
||||
/* copy real values from symbol table into CV slots and create
|
||||
INDIRECT references to CV in symbol table */
|
||||
for (i = 0; i < op_array->last_var; i++) {
|
||||
@ -1483,7 +1483,7 @@ ZEND_API void zend_detach_symbol_table(zend_execute_data *execute_data) /* {{{ *
|
||||
int i;
|
||||
zend_op_array *op_array = &execute_data->func->op_array;
|
||||
HashTable *ht = &execute_data->symbol_table->ht;
|
||||
|
||||
|
||||
/* copy real values from CV slots into symbol table */
|
||||
for (i = 0; i < op_array->last_var; i++) {
|
||||
if (Z_TYPE_P(EX_VAR_NUM(i)) == IS_UNDEF) {
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -26,7 +26,7 @@ ZEND_API void zend_init_fpu(void) /* {{{ */
|
||||
{
|
||||
#if XPFPA_HAVE_CW
|
||||
XPFPA_DECLARE
|
||||
|
||||
|
||||
if (!EG(saved_fpu_cw_ptr)) {
|
||||
EG(saved_fpu_cw_ptr) = (void*)&EG(saved_fpu_cw);
|
||||
}
|
||||
@ -52,7 +52,7 @@ ZEND_API void zend_shutdown_fpu(void) /* {{{ */
|
||||
ZEND_API void zend_ensure_fpu_mode(void) /* {{{ */
|
||||
{
|
||||
XPFPA_DECLARE
|
||||
|
||||
|
||||
XPFPA_SWITCH_DOUBLE();
|
||||
}
|
||||
/* }}} */
|
||||
|
@ -48,7 +48,7 @@ static void root_buffer_dtor(zend_gc_globals *gc_globals)
|
||||
if (gc_globals->buf) {
|
||||
free(gc_globals->buf);
|
||||
gc_globals->buf = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void gc_globals_ctor_ex(zend_gc_globals *gc_globals)
|
||||
@ -379,7 +379,7 @@ static void gc_scan(zend_refcounted *ref)
|
||||
uint idx;
|
||||
Bucket *p;
|
||||
|
||||
tail_call:
|
||||
tail_call:
|
||||
if (GC_GET_COLOR(GC_INFO(ref)) == GC_GREY) {
|
||||
ht = NULL;
|
||||
if (GC_REFCOUNT(ref) > 0) {
|
||||
@ -396,7 +396,7 @@ tail_call:
|
||||
zval *table;
|
||||
zval tmp;
|
||||
HashTable *props;
|
||||
|
||||
|
||||
ZVAL_OBJ(&tmp, obj);
|
||||
props = get_gc(&tmp, &table, &n);
|
||||
while (n > 0 && !Z_REFCOUNTED(table[n-1])) n--;
|
||||
@ -496,7 +496,7 @@ tail_call:
|
||||
buf->prev = &GC_G(roots);
|
||||
GC_G(roots).next->prev = buf;
|
||||
GC_G(roots).next = buf;
|
||||
GC_SET_ADDRESS(GC_INFO(ref), buf - GC_G(buf));
|
||||
GC_SET_ADDRESS(GC_INFO(ref), buf - GC_G(buf));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@ -511,14 +511,14 @@ tail_call:
|
||||
zval *table;
|
||||
zval tmp;
|
||||
HashTable *props;
|
||||
|
||||
|
||||
ZVAL_OBJ(&tmp, obj);
|
||||
props = get_gc(&tmp, &table, &n);
|
||||
while (n > 0 && !Z_REFCOUNTED(table[n-1])) {
|
||||
/* count non-refcounted for compatibility ??? */
|
||||
if (Z_TYPE(table[n-1]) != IS_UNDEF) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
n--;
|
||||
}
|
||||
for (i = 0; i < n; i++) {
|
||||
@ -535,7 +535,7 @@ tail_call:
|
||||
/* count non-refcounted for compatibility ??? */
|
||||
} else if (Z_TYPE(table[i]) != IS_UNDEF) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!props) {
|
||||
return count;
|
||||
|
@ -235,20 +235,20 @@ ZEND_API void zend_generator_create_zval(zend_execute_data *call, zend_op_array
|
||||
if (op_array->static_variables) {
|
||||
ALLOC_HASHTABLE(op_array_copy->static_variables);
|
||||
zend_hash_init(
|
||||
op_array_copy->static_variables,
|
||||
op_array_copy->static_variables,
|
||||
zend_hash_num_elements(op_array->static_variables),
|
||||
NULL, ZVAL_PTR_DTOR, 0
|
||||
);
|
||||
zend_hash_apply_with_arguments(
|
||||
op_array->static_variables,
|
||||
copy_closure_static_var, 1,
|
||||
copy_closure_static_var, 1,
|
||||
op_array_copy->static_variables
|
||||
);
|
||||
}
|
||||
|
||||
op_array = op_array_copy;
|
||||
}
|
||||
|
||||
|
||||
/* Create new execution context. We have to back up and restore
|
||||
* EG(current_execute_data) here. */
|
||||
current_execute_data = EG(current_execute_data);
|
||||
@ -468,7 +468,7 @@ ZEND_METHOD(Generator, send)
|
||||
|
||||
generator = (zend_generator *) Z_OBJ_P(getThis());
|
||||
|
||||
zend_generator_ensure_initialized(generator);
|
||||
zend_generator_ensure_initialized(generator);
|
||||
|
||||
/* The generator is already closed, thus can't send anything */
|
||||
if (!generator->execute_data) {
|
||||
@ -504,7 +504,7 @@ ZEND_METHOD(Generator, throw)
|
||||
|
||||
generator = (zend_generator *) Z_OBJ_P(getThis());
|
||||
|
||||
zend_generator_ensure_initialized(generator);
|
||||
zend_generator_ensure_initialized(generator);
|
||||
|
||||
if (generator->execute_data) {
|
||||
/* Throw the exception in the context of the generator */
|
||||
@ -632,7 +632,7 @@ zend_object_iterator *zend_generator_get_iterator(zend_class_entry *ce, zval *ob
|
||||
}
|
||||
|
||||
iterator = generator->iterator = emalloc(sizeof(zend_object_iterator));
|
||||
|
||||
|
||||
zend_iterator_init(iterator);
|
||||
|
||||
iterator->funcs = &zend_generator_iterator_functions;
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -124,7 +124,7 @@ struct _zend_compiler_globals {
|
||||
zend_stack context_stack;
|
||||
|
||||
zend_arena *arena;
|
||||
|
||||
|
||||
zend_string *empty_string;
|
||||
zend_string *one_char_string[256];
|
||||
|
||||
@ -213,7 +213,7 @@ struct _zend_executor_globals {
|
||||
|
||||
HashTable *ini_directives;
|
||||
HashTable *modified_ini_directives;
|
||||
zend_ini_entry *error_reporting_ini_entry;
|
||||
zend_ini_entry *error_reporting_ini_entry;
|
||||
|
||||
zend_objects_store objects_store;
|
||||
zend_object *exception, *prev_exception;
|
||||
@ -266,7 +266,7 @@ struct _zend_php_scanner_globals {
|
||||
int yy_state;
|
||||
zend_stack state_stack;
|
||||
zend_ptr_stack heredoc_label_stack;
|
||||
|
||||
|
||||
/* original (unfiltered) script */
|
||||
unsigned char *script_org;
|
||||
size_t script_org_size;
|
||||
|
110
Zend/zend_hash.c
110
Zend/zend_hash.c
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -96,7 +96,7 @@ static void zend_hash_do_resize(HashTable *ht);
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
static const uint32_t uninitialized_bucket = {INVALID_IDX};
|
||||
|
||||
ZEND_API void _zend_hash_init(HashTable *ht, uint32_t nSize, dtor_func_t pDestructor, zend_bool persistent ZEND_FILE_LINE_DC)
|
||||
@ -229,7 +229,7 @@ static zend_always_inline Bucket *zend_hash_str_find_bucket(const HashTable *ht,
|
||||
while (idx != INVALID_IDX) {
|
||||
ZEND_ASSERT(idx < ht->nTableSize);
|
||||
p = ht->arData + idx;
|
||||
if ((p->h == h)
|
||||
if ((p->h == h)
|
||||
&& p->key
|
||||
&& (p->key->len == len)
|
||||
&& !memcmp(p->key->val, str, len)) {
|
||||
@ -270,7 +270,7 @@ static zend_always_inline zval *_zend_hash_add_or_update_i(HashTable *ht, zend_s
|
||||
|
||||
if (UNEXPECTED(!(ht->u.flags & HASH_FLAG_INITIALIZED))) {
|
||||
CHECK_INIT(ht, 0);
|
||||
goto add_to_hash;
|
||||
goto add_to_hash;
|
||||
} else if (ht->u.flags & HASH_FLAG_PACKED) {
|
||||
zend_hash_packed_to_hash(ht);
|
||||
} else if ((flag & HASH_ADD_NEW) == 0) {
|
||||
@ -296,7 +296,7 @@ static zend_always_inline zval *_zend_hash_add_or_update_i(HashTable *ht, zend_s
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
ZEND_HASH_IF_FULL_DO_RESIZE(ht); /* If the Hash table is full, resize it */
|
||||
|
||||
add_to_hash:
|
||||
@ -306,7 +306,7 @@ add_to_hash:
|
||||
if (ht->nInternalPointer == INVALID_IDX) {
|
||||
ht->nInternalPointer = idx;
|
||||
}
|
||||
p = ht->arData + idx;
|
||||
p = ht->arData + idx;
|
||||
p->h = h = zend_string_hash_val(key);
|
||||
p->key = key;
|
||||
zend_string_addref(key);
|
||||
@ -386,7 +386,7 @@ ZEND_API zval *_zend_hash_str_add_new(HashTable *ht, const char *str, size_t len
|
||||
|
||||
ZEND_API zval *zend_hash_index_add_empty_element(HashTable *ht, zend_ulong h)
|
||||
{
|
||||
|
||||
|
||||
zval dummy;
|
||||
|
||||
ZVAL_NULL(&dummy);
|
||||
@ -395,7 +395,7 @@ ZEND_API zval *zend_hash_index_add_empty_element(HashTable *ht, zend_ulong h)
|
||||
|
||||
ZEND_API zval *zend_hash_add_empty_element(HashTable *ht, zend_string *key)
|
||||
{
|
||||
|
||||
|
||||
zval dummy;
|
||||
|
||||
ZVAL_NULL(&dummy);
|
||||
@ -404,7 +404,7 @@ ZEND_API zval *zend_hash_add_empty_element(HashTable *ht, zend_string *key)
|
||||
|
||||
ZEND_API zval *zend_hash_str_add_empty_element(HashTable *ht, const char *str, size_t len)
|
||||
{
|
||||
|
||||
|
||||
zval dummy;
|
||||
|
||||
ZVAL_NULL(&dummy);
|
||||
@ -764,7 +764,7 @@ ZEND_API int zend_hash_str_del(HashTable *ht, const char *str, size_t len)
|
||||
idx = ht->arHash[nIndex];
|
||||
while (idx != INVALID_IDX) {
|
||||
p = ht->arData + idx;
|
||||
if ((p->h == h)
|
||||
if ((p->h == h)
|
||||
&& p->key
|
||||
&& (p->key->len == len)
|
||||
&& !memcmp(p->key->val, str, len)) {
|
||||
@ -806,7 +806,7 @@ ZEND_API int zend_hash_str_del_ind(HashTable *ht, const char *str, size_t len)
|
||||
idx = ht->arHash[nIndex];
|
||||
while (idx != INVALID_IDX) {
|
||||
p = ht->arData + idx;
|
||||
if ((p->h == h)
|
||||
if ((p->h == h)
|
||||
&& p->key
|
||||
&& (p->key->len == len)
|
||||
&& !memcmp(p->key->val, str, len)) {
|
||||
@ -881,7 +881,7 @@ ZEND_API void zend_hash_destroy(HashTable *ht)
|
||||
}
|
||||
} while (++p != end);
|
||||
}
|
||||
|
||||
|
||||
SET_INCONSISTENT(HT_DESTROYED);
|
||||
} else {
|
||||
if (!(ht->u.flags & HASH_FLAG_PACKED)) {
|
||||
@ -907,13 +907,13 @@ ZEND_API void zend_array_destroy(HashTable *ht)
|
||||
IS_CONSISTENT(ht);
|
||||
|
||||
if (ht->nNumUsed) {
|
||||
|
||||
|
||||
/* In some rare cases destructors of regular arrays may be changed */
|
||||
if (UNEXPECTED(ht->pDestructor != ZVAL_PTR_DTOR)) {
|
||||
zend_hash_destroy(ht);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
p = ht->arData;
|
||||
end = p + ht->nNumUsed;
|
||||
SET_INCONSISTENT(HT_IS_DESTROYING);
|
||||
@ -934,7 +934,7 @@ ZEND_API void zend_array_destroy(HashTable *ht)
|
||||
}
|
||||
} while (++p != end);
|
||||
}
|
||||
|
||||
|
||||
SET_INCONSISTENT(HT_DESTROYED);
|
||||
} else if (EXPECTED(!(ht->u.flags & HASH_FLAG_INITIALIZED))) {
|
||||
return;
|
||||
@ -980,7 +980,7 @@ ZEND_API void zend_hash_clean(HashTable *ht)
|
||||
}
|
||||
}
|
||||
if (!(ht->u.flags & HASH_FLAG_PACKED)) {
|
||||
memset(ht->arHash, INVALID_IDX, ht->nTableSize * sizeof(uint32_t));
|
||||
memset(ht->arHash, INVALID_IDX, ht->nTableSize * sizeof(uint32_t));
|
||||
}
|
||||
}
|
||||
ht->nNumUsed = 0;
|
||||
@ -1007,7 +1007,7 @@ ZEND_API void zend_symtable_clean(HashTable *ht)
|
||||
}
|
||||
} while (++p != end);
|
||||
if (!(ht->u.flags & HASH_FLAG_PACKED)) {
|
||||
memset(ht->arHash, INVALID_IDX, ht->nTableSize * sizeof(uint32_t));
|
||||
memset(ht->arHash, INVALID_IDX, ht->nTableSize * sizeof(uint32_t));
|
||||
}
|
||||
}
|
||||
ht->nNumUsed = 0;
|
||||
@ -1023,7 +1023,7 @@ ZEND_API void zend_hash_graceful_destroy(HashTable *ht)
|
||||
|
||||
IS_CONSISTENT(ht);
|
||||
|
||||
for (idx = 0; idx < ht->nNumUsed; idx++) {
|
||||
for (idx = 0; idx < ht->nNumUsed; idx++) {
|
||||
p = ht->arData + idx;
|
||||
if (Z_TYPE(p->val) == IS_UNDEF) continue;
|
||||
_zend_hash_del_el(ht, idx, p);
|
||||
@ -1057,9 +1057,9 @@ ZEND_API void zend_hash_graceful_reverse_destroy(HashTable *ht)
|
||||
SET_INCONSISTENT(HT_DESTROYED);
|
||||
}
|
||||
|
||||
/* This is used to recurse elements and selectively delete certain entries
|
||||
* from a hashtable. apply_func() receives the data and decides if the entry
|
||||
* should be deleted or recursion should be stopped. The following three
|
||||
/* This is used to recurse elements and selectively delete certain entries
|
||||
* from a hashtable. apply_func() receives the data and decides if the entry
|
||||
* should be deleted or recursion should be stopped. The following three
|
||||
* return codes are possible:
|
||||
* ZEND_HASH_APPLY_KEEP - continue
|
||||
* ZEND_HASH_APPLY_STOP - stop iteration
|
||||
@ -1078,9 +1078,9 @@ ZEND_API void zend_hash_apply(HashTable *ht, apply_func_t apply_func)
|
||||
for (idx = 0; idx < ht->nNumUsed; idx++) {
|
||||
p = ht->arData + idx;
|
||||
if (Z_TYPE(p->val) == IS_UNDEF) continue;
|
||||
|
||||
|
||||
result = apply_func(&p->val);
|
||||
|
||||
|
||||
if (result & ZEND_HASH_APPLY_REMOVE) {
|
||||
_zend_hash_del_el(ht, idx, p);
|
||||
}
|
||||
@ -1106,7 +1106,7 @@ ZEND_API void zend_hash_apply_with_argument(HashTable *ht, apply_func_arg_t appl
|
||||
if (Z_TYPE(p->val) == IS_UNDEF) continue;
|
||||
|
||||
result = apply_func(&p->val, argument);
|
||||
|
||||
|
||||
if (result & ZEND_HASH_APPLY_REMOVE) {
|
||||
_zend_hash_del_el(ht, idx, p);
|
||||
}
|
||||
@ -1167,7 +1167,7 @@ ZEND_API void zend_hash_reverse_apply(HashTable *ht, apply_func_t apply_func)
|
||||
idx--;
|
||||
p = ht->arData + idx;
|
||||
if (Z_TYPE(p->val) == IS_UNDEF) continue;
|
||||
|
||||
|
||||
result = apply_func(&p->val);
|
||||
|
||||
if (result & ZEND_HASH_APPLY_REMOVE) {
|
||||
@ -1192,7 +1192,7 @@ ZEND_API void zend_hash_copy(HashTable *target, HashTable *source, copy_ctor_fun
|
||||
IS_CONSISTENT(target);
|
||||
|
||||
setTargetPointer = (target->nInternalPointer == INVALID_IDX);
|
||||
for (idx = 0; idx < source->nNumUsed; idx++) {
|
||||
for (idx = 0; idx < source->nNumUsed; idx++) {
|
||||
p = source->arData + idx;
|
||||
if (Z_TYPE(p->val) == IS_UNDEF) continue;
|
||||
|
||||
@ -1234,7 +1234,7 @@ ZEND_API void zend_array_dup(HashTable *target, HashTable *source)
|
||||
zval *data;
|
||||
|
||||
IS_CONSISTENT(source);
|
||||
|
||||
|
||||
target->nTableMask = source->nTableMask;
|
||||
target->nTableSize = source->nTableSize;
|
||||
target->pDestructor = source->pDestructor;
|
||||
@ -1251,7 +1251,7 @@ ZEND_API void zend_array_dup(HashTable *target, HashTable *source)
|
||||
target->arHash = (uint32_t*)&uninitialized_bucket;
|
||||
target->nInternalPointer = source->nInternalPointer;
|
||||
|
||||
for (idx = 0; idx < source->nNumUsed; idx++) {
|
||||
for (idx = 0; idx < source->nNumUsed; idx++) {
|
||||
p = source->arData + idx;
|
||||
q = target->arData + idx;
|
||||
if (Z_TYPE(p->val) == IS_UNDEF) {
|
||||
@ -1294,7 +1294,7 @@ ZEND_API void zend_array_dup(HashTable *target, HashTable *source)
|
||||
target->arHash = (uint32_t*)(target->arData + target->nTableSize);
|
||||
memset(target->arHash, INVALID_IDX, target->nTableSize * sizeof(uint32_t));
|
||||
|
||||
for (idx = 0; idx < source->nNumUsed; idx++) {
|
||||
for (idx = 0; idx < source->nNumUsed; idx++) {
|
||||
p = source->arData + idx;
|
||||
if (Z_TYPE(p->val) == IS_UNDEF) continue;
|
||||
/* INDIRECT element may point to UNDEF-ined slots */
|
||||
@ -1515,7 +1515,7 @@ ZEND_API zend_bool zend_hash_index_exists(const HashTable *ht, zend_ulong h)
|
||||
ZEND_API void zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *pos)
|
||||
{
|
||||
uint32_t idx;
|
||||
|
||||
|
||||
IS_CONSISTENT(ht);
|
||||
for (idx = 0; idx < ht->nNumUsed; idx++) {
|
||||
if (Z_TYPE(ht->arData[idx].val) != IS_UNDEF) {
|
||||
@ -1527,13 +1527,13 @@ ZEND_API void zend_hash_internal_pointer_reset_ex(HashTable *ht, HashPosition *p
|
||||
}
|
||||
|
||||
|
||||
/* This function will be extremely optimized by remembering
|
||||
/* This function will be extremely optimized by remembering
|
||||
* the end of the list
|
||||
*/
|
||||
ZEND_API void zend_hash_internal_pointer_end_ex(HashTable *ht, HashPosition *pos)
|
||||
{
|
||||
uint32_t idx;
|
||||
|
||||
|
||||
IS_CONSISTENT(ht);
|
||||
|
||||
idx = ht->nNumUsed;
|
||||
@ -1737,13 +1737,13 @@ ZEND_API int zend_hash_compare(HashTable *ht1, HashTable *ht2, compare_func_t co
|
||||
IS_CONSISTENT(ht1);
|
||||
IS_CONSISTENT(ht2);
|
||||
|
||||
HASH_PROTECT_RECURSION(ht1);
|
||||
HASH_PROTECT_RECURSION(ht2);
|
||||
HASH_PROTECT_RECURSION(ht1);
|
||||
HASH_PROTECT_RECURSION(ht2);
|
||||
|
||||
result = ht1->nNumOfElements - ht2->nNumOfElements;
|
||||
if (result!=0) {
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return result;
|
||||
}
|
||||
|
||||
@ -1755,32 +1755,32 @@ ZEND_API int zend_hash_compare(HashTable *ht1, HashTable *ht2, compare_func_t co
|
||||
while (1) {
|
||||
p2 = ht2->arData + idx2;
|
||||
if (idx2 == ht2->nNumUsed) {
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return 1; /* That's not supposed to happen */
|
||||
}
|
||||
if (Z_TYPE(p2->val) != IS_UNDEF) break;
|
||||
idx2++;
|
||||
}
|
||||
}
|
||||
if (p1->key == NULL && p2->key == NULL) { /* numeric indices */
|
||||
result = p1->h - p2->h;
|
||||
if (result != 0) {
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return result;
|
||||
}
|
||||
} else { /* string indices */
|
||||
size_t len0 = (p1->key ? p1->key->len : 0);
|
||||
size_t len1 = (p2->key ? p2->key->len : 0);
|
||||
if (len0 != len1) {
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return len0 > len1 ? 1 : -1;
|
||||
}
|
||||
result = memcmp(p1->key->val, p2->key->val, p1->key->len);
|
||||
if (result != 0) {
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@ -1789,15 +1789,15 @@ ZEND_API int zend_hash_compare(HashTable *ht1, HashTable *ht2, compare_func_t co
|
||||
if (p1->key == NULL) { /* numeric index */
|
||||
pData2 = zend_hash_index_find(ht2, p1->h);
|
||||
if (pData2 == NULL) {
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return 1;
|
||||
}
|
||||
} else { /* string index */
|
||||
pData2 = zend_hash_find(ht2, p1->key);
|
||||
if (pData2 == NULL) {
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -1819,17 +1819,17 @@ ZEND_API int zend_hash_compare(HashTable *ht1, HashTable *ht2, compare_func_t co
|
||||
result = compar(pData1, pData2);
|
||||
}
|
||||
if (result != 0) {
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return result;
|
||||
}
|
||||
if (ordered) {
|
||||
idx2++;
|
||||
}
|
||||
}
|
||||
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
|
||||
HASH_UNPROTECT_RECURSION(ht1);
|
||||
HASH_UNPROTECT_RECURSION(ht2);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1857,7 +1857,7 @@ ZEND_API zval *zend_hash_minmax(const HashTable *ht, compare_func_t compar, uint
|
||||
for (; idx < ht->nNumUsed; idx++) {
|
||||
p = ht->arData + idx;
|
||||
if (Z_TYPE(p->val) == IS_UNDEF) continue;
|
||||
|
||||
|
||||
if (flag) {
|
||||
if (compar(res, p) < 0) { /* max */
|
||||
res = p;
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -655,7 +655,7 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
|
||||
#define ZEND_HASH_FOREACH_END() \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define ZEND_HASH_FOREACH_BUCKET(ht, _bucket) \
|
||||
ZEND_HASH_FOREACH(ht, 0); \
|
||||
_bucket = _p;
|
||||
@ -679,7 +679,7 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
|
||||
#define ZEND_HASH_FOREACH_STR_KEY(ht, _key) \
|
||||
ZEND_HASH_FOREACH(ht, 0); \
|
||||
_key = _p->key;
|
||||
|
||||
|
||||
#define ZEND_HASH_FOREACH_KEY(ht, _h, _key) \
|
||||
ZEND_HASH_FOREACH(ht, 0); \
|
||||
_h = _p->h; \
|
||||
@ -689,7 +689,7 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
|
||||
ZEND_HASH_FOREACH(ht, 0); \
|
||||
_h = _p->h; \
|
||||
_val = _z;
|
||||
|
||||
|
||||
#define ZEND_HASH_FOREACH_STR_KEY_VAL(ht, _key, _val) \
|
||||
ZEND_HASH_FOREACH(ht, 0); \
|
||||
_key = _p->key; \
|
||||
@ -761,7 +761,7 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
|
||||
#define ZEND_HASH_DEC_APPLY_COUNT(ht) ((ht)->u.flags -= (1 << ZEND_HASH_APPLY_SHIFT))
|
||||
|
||||
|
||||
/* The following macros are useful to insert a sequence of new elements
|
||||
/* The following macros are useful to insert a sequence of new elements
|
||||
* of packed array. They may be use insted of series of
|
||||
* zend_hash_next_index_insert_new()
|
||||
* (HashTable must have enough free buckets).
|
||||
@ -779,7 +779,7 @@ static zend_always_inline void *zend_hash_get_current_data_ptr_ex(HashTable *ht,
|
||||
__fill_bkt++; \
|
||||
__fill_idx++; \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define ZEND_HASH_FILL_END() \
|
||||
__fill_ht->nNumUsed = __fill_idx; \
|
||||
__fill_ht->nNumOfElements = __fill_idx; \
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -189,7 +189,7 @@ ZEND_API void zend_strip(void)
|
||||
case T_DOC_COMMENT:
|
||||
ZVAL_UNDEF(&token);
|
||||
continue;
|
||||
|
||||
|
||||
case T_END_HEREDOC:
|
||||
zend_write((char*)LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
|
||||
/* read the following character, either newline or ; */
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -32,7 +32,7 @@ static void ptr_dtor(zval *zv) /* {{{ */
|
||||
static zend_property_info *zend_duplicate_property_info(zend_property_info *property_info) /* {{{ */
|
||||
{
|
||||
zend_property_info* new_property_info;
|
||||
|
||||
|
||||
new_property_info = zend_arena_alloc(&CG(arena), sizeof(zend_property_info));
|
||||
memcpy(new_property_info, property_info, sizeof(zend_property_info));
|
||||
zend_string_addref(new_property_info->name);
|
||||
@ -288,7 +288,7 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
|
||||
zend_string *fe_class_name, *proto_class_name;
|
||||
const char *class_name;
|
||||
|
||||
if (fe->type == ZEND_INTERNAL_FUNCTION) {
|
||||
if (fe->type == ZEND_INTERNAL_FUNCTION) {
|
||||
fe_class_name = NULL;
|
||||
class_name = ((zend_internal_arg_info*)fe_arg_info)->class_name;
|
||||
} else {
|
||||
@ -305,7 +305,7 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c
|
||||
fe_class_name = zend_string_init(class_name, strlen(class_name), 0);
|
||||
}
|
||||
|
||||
if (proto->type == ZEND_INTERNAL_FUNCTION) {
|
||||
if (proto->type == ZEND_INTERNAL_FUNCTION) {
|
||||
proto_class_name = NULL;
|
||||
class_name = ((zend_internal_arg_info*)proto_arg_info)->class_name;
|
||||
} else {
|
||||
@ -1320,7 +1320,7 @@ static void zend_traits_compile_exclude_table(HashTable* exclude_table, zend_tra
|
||||
j = 0;
|
||||
while (precedences[i]->exclude_from_classes[j].ce) {
|
||||
if (precedences[i]->exclude_from_classes[j].ce == trait) {
|
||||
zend_string *lcname =
|
||||
zend_string *lcname =
|
||||
zend_string_tolower(precedences[i]->trait_method->method_name);
|
||||
if (zend_hash_add_empty_element(exclude_table, lcname) == NULL) {
|
||||
zend_string_release(lcname);
|
||||
|
@ -254,7 +254,7 @@ ZEND_API int zend_register_ini_entries(const zend_ini_entry_def *ini_entry, int
|
||||
}
|
||||
if (((default_value = zend_get_configuration_directive(p->name)) != NULL) &&
|
||||
(!p->on_modify || p->on_modify(p, Z_STR_P(default_value), p->mh_arg1, p->mh_arg2, p->mh_arg3, ZEND_INI_STAGE_STARTUP) == SUCCESS)) {
|
||||
|
||||
|
||||
p->value = zend_string_copy(Z_STR_P(default_value));
|
||||
} else {
|
||||
p->value = ini_entry->value ?
|
||||
@ -404,7 +404,7 @@ ZEND_API int zend_ini_register_displayer(char *name, uint name_length, void (*di
|
||||
{
|
||||
zend_ini_entry *ini_entry;
|
||||
|
||||
ini_entry = zend_hash_str_find_ptr(registered_zend_ini_directives, name, name_length);
|
||||
ini_entry = zend_hash_str_find_ptr(registered_zend_ini_directives, name, name_length);
|
||||
if (ini_entry == NULL) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
@ -113,7 +113,7 @@ END_EXTERN_C()
|
||||
|
||||
#define ZEND_INI_ENTRY1(name, default_value, modifiable, on_modify, arg1) \
|
||||
ZEND_INI_ENTRY1_EX(name, default_value, modifiable, on_modify, arg1, NULL)
|
||||
|
||||
|
||||
#define ZEND_INI_ENTRY_EX(name, default_value, modifiable, on_modify, displayer) \
|
||||
ZEND_INI_ENTRY3_EX(name, default_value, modifiable, on_modify, NULL, NULL, NULL, displayer)
|
||||
|
||||
|
@ -210,7 +210,7 @@ ZEND_API int zend_parse_ini_file(zend_file_handle *fh, zend_bool unbuffered_erro
|
||||
zend_file_handle_dtor(fh);
|
||||
|
||||
shutdown_ini_scanner();
|
||||
|
||||
|
||||
if (retval == 0) {
|
||||
return SUCCESS;
|
||||
} else {
|
||||
|
@ -414,38 +414,38 @@ restart:
|
||||
yyc_INITIAL:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 160, 0, 144, 144, 0, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
240, 128, 128, 144, 128, 144, 128, 144,
|
||||
128, 128, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 128, 144, 128, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 128, 144, 144, 128, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 128, 128, 128, 128, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 160, 0, 144, 144, 0, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
240, 128, 128, 144, 128, 144, 128, 144,
|
||||
128, 128, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 128, 144, 128, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 128, 144, 144, 128, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 128, 128, 128, 128, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
144, 144, 144, 144, 144, 144, 144, 144,
|
||||
};
|
||||
|
||||
YYDEBUG(0, *YYCURSOR);
|
||||
@ -720,7 +720,7 @@ yy28:
|
||||
{ /* Start of option with offset */
|
||||
/* Eat leading whitespace */
|
||||
EAT_LEADING_WHITESPACE();
|
||||
|
||||
|
||||
/* Eat trailing whitespace and [ */
|
||||
EAT_TRAILING_WHITESPACE_EX('[');
|
||||
|
||||
@ -1216,38 +1216,38 @@ yy77:
|
||||
yyc_ST_DOUBLE_QUOTES:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
};
|
||||
YYDEBUG(78, *YYCURSOR);
|
||||
YYFILL(2);
|
||||
@ -1264,7 +1264,7 @@ yy81:
|
||||
if (YYCURSOR > YYLIMIT) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
while (YYCURSOR < YYLIMIT) {
|
||||
switch (*YYCURSOR++) {
|
||||
case '"':
|
||||
@ -1285,13 +1285,13 @@ yy81:
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
YYCURSOR--;
|
||||
break;
|
||||
}
|
||||
|
||||
yyleng = YYCURSOR - SCNG(yy_text);
|
||||
|
||||
|
||||
zend_ini_escape_string(ini_lval, yytext, yyleng, '"');
|
||||
return TC_QUOTED_STRING;
|
||||
}
|
||||
@ -1340,38 +1340,38 @@ yy88:
|
||||
yyc_ST_OFFSET:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 194, 64, 66, 66, 64, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
194, 66, 64, 66, 68, 66, 66, 0,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
114, 114, 114, 114, 114, 114, 114, 114,
|
||||
114, 114, 66, 64, 66, 66, 66, 66,
|
||||
66, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 66, 72, 64, 66, 82,
|
||||
66, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 194, 64, 66, 66, 64, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
194, 66, 64, 66, 68, 66, 66, 0,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
114, 114, 114, 114, 114, 114, 114, 114,
|
||||
114, 114, 66, 64, 66, 66, 66, 66,
|
||||
66, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 66, 72, 64, 66, 82,
|
||||
66, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 82, 82, 82, 82, 82,
|
||||
82, 82, 82, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
66, 66, 66, 66, 66, 66, 66, 66,
|
||||
};
|
||||
YYDEBUG(89, *YYCURSOR);
|
||||
YYFILL(2);
|
||||
@ -1929,38 +1929,38 @@ yy139:
|
||||
yyc_ST_RAW:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 192, 0, 64, 64, 0, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
192, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 192, 0, 64, 64, 0, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
192, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
};
|
||||
YYDEBUG(140, *YYCURSOR);
|
||||
YYFILL(3);
|
||||
@ -2146,38 +2146,38 @@ yy160:
|
||||
yyc_ST_SECTION_RAW:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 192, 0, 128, 128, 0, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
192, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 0, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 192, 0, 128, 128, 0, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
192, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 0, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
};
|
||||
YYDEBUG(161, *YYCURSOR);
|
||||
YYFILL(3);
|
||||
@ -2263,38 +2263,38 @@ yy174:
|
||||
yyc_ST_SECTION_VALUE:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 134, 128, 132, 132, 128, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
134, 132, 128, 132, 136, 132, 132, 0,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
228, 228, 228, 228, 228, 228, 228, 228,
|
||||
228, 228, 132, 128, 132, 132, 132, 132,
|
||||
132, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 132, 144, 128, 132, 164,
|
||||
132, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 134, 128, 132, 132, 128, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
134, 132, 128, 132, 136, 132, 132, 0,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
228, 228, 228, 228, 228, 228, 228, 228,
|
||||
228, 228, 132, 128, 132, 132, 132, 132,
|
||||
132, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 132, 144, 128, 132, 164,
|
||||
132, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 164, 164, 164, 164, 164,
|
||||
164, 164, 164, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
132, 132, 132, 132, 132, 132, 132, 132,
|
||||
};
|
||||
YYDEBUG(175, *YYCURSOR);
|
||||
YYFILL(3);
|
||||
@ -2885,38 +2885,38 @@ yy228:
|
||||
yyc_ST_VALUE:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
160, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 176, 128, 162, 162, 128, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
176, 160, 160, 162, 168, 162, 160, 32,
|
||||
160, 160, 162, 162, 162, 162, 162, 162,
|
||||
230, 230, 230, 230, 230, 230, 230, 230,
|
||||
230, 230, 162, 160, 162, 160, 162, 162,
|
||||
162, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 162, 162, 162, 160, 166,
|
||||
162, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 162, 160, 162, 160, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
160, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 176, 128, 162, 162, 128, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
176, 160, 160, 162, 168, 162, 160, 32,
|
||||
160, 160, 162, 162, 162, 162, 162, 162,
|
||||
230, 230, 230, 230, 230, 230, 230, 230,
|
||||
230, 230, 162, 160, 162, 160, 162, 162,
|
||||
162, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 162, 162, 162, 160, 166,
|
||||
162, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 166, 166, 166, 166, 166,
|
||||
166, 166, 166, 162, 160, 162, 160, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
162, 162, 162, 162, 162, 162, 162, 162,
|
||||
};
|
||||
YYDEBUG(229, *YYCURSOR);
|
||||
YYFILL(6);
|
||||
@ -4698,38 +4698,38 @@ yy317:
|
||||
yyc_ST_VARNAME:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 0, 0, 128, 128, 0, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 0, 0, 128, 0, 128, 0, 128,
|
||||
0, 0, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 128, 0, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 128, 128, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 0, 0, 128, 128, 0, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 0, 0, 128, 0, 128, 0, 128,
|
||||
0, 0, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 128, 0, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 128, 128, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
};
|
||||
YYDEBUG(318, *YYCURSOR);
|
||||
YYFILL(2);
|
||||
|
@ -427,7 +427,7 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
|
||||
<INITIAL>{LABEL}"["{TABS_AND_SPACES}* { /* Start of option with offset */
|
||||
/* Eat leading whitespace */
|
||||
EAT_LEADING_WHITESPACE();
|
||||
|
||||
|
||||
/* Eat trailing whitespace and [ */
|
||||
EAT_TRAILING_WHITESPACE_EX('[');
|
||||
|
||||
@ -584,7 +584,7 @@ end_raw_value_chars:
|
||||
if (YYCURSOR > YYLIMIT) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
while (YYCURSOR < YYLIMIT) {
|
||||
switch (*YYCURSOR++) {
|
||||
case '"':
|
||||
@ -605,13 +605,13 @@ end_raw_value_chars:
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
YYCURSOR--;
|
||||
break;
|
||||
}
|
||||
|
||||
yyleng = YYCURSOR - SCNG(yy_text);
|
||||
|
||||
|
||||
zend_ini_escape_string(ini_lval, yytext, yyleng, '"');
|
||||
return TC_QUOTED_STRING;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -185,7 +185,7 @@ ZEND_API zval *zend_user_it_get_current_data(zend_object_iterator *_iter)
|
||||
|
||||
if (Z_ISUNDEF(iter->value)) {
|
||||
zend_call_method_with_0_params(object, iter->ce, &iter->ce->iterator_funcs.zf_current, "current", &iter->value);
|
||||
}
|
||||
}
|
||||
return &iter->value;
|
||||
}
|
||||
/* }}} */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -71,7 +71,7 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
|
||||
%left '?' ':'
|
||||
%right T_COALESCE
|
||||
%left T_BOOLEAN_OR
|
||||
%left T_BOOLEAN_AND
|
||||
%left T_BOOLEAN_AND
|
||||
%left '|'
|
||||
%left '^'
|
||||
%left '&'
|
||||
@ -87,8 +87,8 @@ static YYSIZE_T zend_yytnamerr(char*, const char*);
|
||||
%right '['
|
||||
%nonassoc T_NEW T_CLONE
|
||||
%left T_ELSEIF
|
||||
%left T_ELSE
|
||||
%left T_ENDIF
|
||||
%left T_ELSE
|
||||
%left T_ENDIF
|
||||
%right T_STATIC T_ABSTRACT T_FINAL T_PRIVATE T_PROTECTED T_PUBLIC
|
||||
|
||||
%token <ast> T_LNUMBER "integer number (T_LNUMBER)"
|
||||
@ -788,9 +788,9 @@ expr_without_variable:
|
||||
{ $$ = zend_ast_create_assign_op(ZEND_ASSIGN_MOD, $1, $3); }
|
||||
| variable T_AND_EQUAL expr
|
||||
{ $$ = zend_ast_create_assign_op(ZEND_ASSIGN_BW_AND, $1, $3); }
|
||||
| variable T_OR_EQUAL expr
|
||||
| variable T_OR_EQUAL expr
|
||||
{ $$ = zend_ast_create_assign_op(ZEND_ASSIGN_BW_OR, $1, $3); }
|
||||
| variable T_XOR_EQUAL expr
|
||||
| variable T_XOR_EQUAL expr
|
||||
{ $$ = zend_ast_create_assign_op(ZEND_ASSIGN_BW_XOR, $1, $3); }
|
||||
| variable T_SL_EQUAL expr
|
||||
{ $$ = zend_ast_create_assign_op(ZEND_ASSIGN_SL, $1, $3); }
|
||||
@ -1195,7 +1195,7 @@ static YYSIZE_T zend_yytnamerr(char *yyres, const char *yystr)
|
||||
char buffer[120];
|
||||
const unsigned char *end, *str, *tok1 = NULL, *tok2 = NULL;
|
||||
unsigned int len = 0, toklen = 0, yystr_len;
|
||||
|
||||
|
||||
CG(parse_error) = 1;
|
||||
|
||||
if (LANG_SCNG(yy_text)[0] == 0 &&
|
||||
@ -1204,11 +1204,11 @@ static YYSIZE_T zend_yytnamerr(char *yyres, const char *yystr)
|
||||
yystpcpy(yyres, "end of file");
|
||||
return sizeof("end of file")-1;
|
||||
}
|
||||
|
||||
|
||||
str = LANG_SCNG(yy_text);
|
||||
end = memchr(str, '\n', LANG_SCNG(yy_leng));
|
||||
yystr_len = (unsigned int)yystrlen(yystr);
|
||||
|
||||
|
||||
if ((tok1 = memchr(yystr, '(', yystr_len)) != NULL
|
||||
&& (tok2 = zend_memrchr(yystr, ')', yystr_len)) != NULL) {
|
||||
toklen = (tok2 - tok1) + 1;
|
||||
@ -1216,7 +1216,7 @@ static YYSIZE_T zend_yytnamerr(char *yyres, const char *yystr)
|
||||
tok1 = tok2 = NULL;
|
||||
toklen = 0;
|
||||
}
|
||||
|
||||
|
||||
if (end == NULL) {
|
||||
len = LANG_SCNG(yy_leng) > 30 ? 30 : LANG_SCNG(yy_leng);
|
||||
} else {
|
||||
@ -1229,8 +1229,8 @@ static YYSIZE_T zend_yytnamerr(char *yyres, const char *yystr)
|
||||
}
|
||||
yystpcpy(yyres, buffer);
|
||||
return len + (toklen ? toklen + 1 : 0) + 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (*yystr == '"') {
|
||||
YYSIZE_T yyn = 0;
|
||||
const char *yyp = yystr;
|
||||
|
@ -733,7 +733,7 @@ zend_op_array *compile_string(zval *source_string, char *filename)
|
||||
ZVAL_DUP(&tmp, source_string);
|
||||
convert_to_string(&tmp);
|
||||
source_string = &tmp;
|
||||
|
||||
|
||||
CG(in_compilation) = 1;
|
||||
zend_save_lexical_state(&original_lex_state);
|
||||
if (zend_prepare_string_for_scanning(source_string, filename) == SUCCESS) {
|
||||
@ -1256,38 +1256,38 @@ yy16:
|
||||
yyc_ST_BACKQUOTE:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
};
|
||||
YYDEBUG(17, *YYCURSOR);
|
||||
YYFILL(2);
|
||||
@ -1474,38 +1474,38 @@ yy37:
|
||||
yyc_ST_DOUBLE_QUOTES:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
};
|
||||
YYDEBUG(39, *YYCURSOR);
|
||||
YYFILL(2);
|
||||
@ -1725,38 +1725,38 @@ yyc_ST_END_HEREDOC:
|
||||
yyc_ST_HEREDOC:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
};
|
||||
YYDEBUG(65, *YYCURSOR);
|
||||
YYFILL(2);
|
||||
@ -1961,38 +1961,38 @@ yy83:
|
||||
yyc_ST_IN_SCRIPTING:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 192, 64, 0, 0, 64, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
192, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
60, 60, 44, 44, 44, 44, 44, 44,
|
||||
44, 44, 0, 0, 0, 0, 0, 0,
|
||||
0, 36, 36, 36, 36, 36, 36, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 0, 0, 0, 0, 4,
|
||||
0, 36, 36, 36, 36, 36, 36, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 0, 0, 0, 0, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 192, 64, 0, 0, 64, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
192, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
60, 60, 44, 44, 44, 44, 44, 44,
|
||||
44, 44, 0, 0, 0, 0, 0, 0,
|
||||
0, 36, 36, 36, 36, 36, 36, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 0, 0, 0, 0, 4,
|
||||
0, 36, 36, 36, 36, 36, 36, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 0, 0, 0, 0, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
4, 4, 4, 4, 4, 4, 4, 4,
|
||||
};
|
||||
YYDEBUG(85, *YYCURSOR);
|
||||
YYFILL(16);
|
||||
@ -6815,38 +6815,38 @@ yy759:
|
||||
yyc_ST_LOOKING_FOR_PROPERTY:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 0, 0, 128, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 0, 0, 0, 0, 0, 0,
|
||||
0, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 0, 0, 0, 0, 64,
|
||||
0, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 0, 0, 0, 0, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 0, 0, 128, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 0, 0, 0, 0, 0, 0,
|
||||
0, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 0, 0, 0, 0, 64,
|
||||
0, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 0, 0, 0, 0, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
64, 64, 64, 64, 64, 64, 64, 64,
|
||||
};
|
||||
YYDEBUG(761, *YYCURSOR);
|
||||
YYFILL(2);
|
||||
@ -6958,38 +6958,38 @@ yy775:
|
||||
yyc_ST_LOOKING_FOR_VARNAME:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 0, 0, 0, 0, 0, 0,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
0, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 0, 0, 0, 0, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
128, 128, 128, 128, 128, 128, 128, 128,
|
||||
};
|
||||
YYDEBUG(776, *YYCURSOR);
|
||||
YYFILL(2);
|
||||
@ -7138,38 +7138,38 @@ nowdoc_scan_done:
|
||||
yyc_ST_VAR_OFFSET:
|
||||
{
|
||||
static const unsigned char yybm[] = {
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
240, 240, 112, 112, 112, 112, 112, 112,
|
||||
112, 112, 0, 0, 0, 0, 0, 0,
|
||||
0, 80, 80, 80, 80, 80, 80, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 0, 0, 0, 0, 16,
|
||||
0, 80, 80, 80, 80, 80, 80, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 0, 0, 0, 0, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 0, 0, 0, 0, 0,
|
||||
240, 240, 112, 112, 112, 112, 112, 112,
|
||||
112, 112, 0, 0, 0, 0, 0, 0,
|
||||
0, 80, 80, 80, 80, 80, 80, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 0, 0, 0, 0, 16,
|
||||
0, 80, 80, 80, 80, 80, 80, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 0, 0, 0, 0, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
16, 16, 16, 16, 16, 16, 16, 16,
|
||||
};
|
||||
YYDEBUG(790, *YYCURSOR);
|
||||
YYFILL(3);
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -731,7 +731,7 @@ zend_op_array *compile_string(zval *source_string, char *filename)
|
||||
ZVAL_DUP(&tmp, source_string);
|
||||
convert_to_string(&tmp);
|
||||
source_string = &tmp;
|
||||
|
||||
|
||||
CG(in_compilation) = 1;
|
||||
zend_save_lexical_state(&original_lex_state);
|
||||
if (zend_prepare_string_for_scanning(source_string, filename) == SUCCESS) {
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -65,7 +65,7 @@ ZEND_API int zend_list_free(zend_resource *res)
|
||||
static void zend_resource_dtor(zend_resource *res)
|
||||
{
|
||||
zend_rsrc_list_dtors_entry *ld;
|
||||
|
||||
|
||||
ld = zend_hash_index_find_ptr(&list_destructors, res->type);
|
||||
if (ld) {
|
||||
if (ld->list_dtor_ex) {
|
||||
@ -94,7 +94,7 @@ ZEND_API zend_resource* zend_register_resource(zval *rsrc_result, void *rsrc_poi
|
||||
zval *zv;
|
||||
|
||||
zv = zend_list_insert(rsrc_pointer, rsrc_type);
|
||||
|
||||
|
||||
if (rsrc_result) {
|
||||
ZVAL_COPY_VALUE(rsrc_result, zv);
|
||||
return Z_RES_P(rsrc_result);
|
||||
@ -165,7 +165,7 @@ void list_entry_destructor(zval *zv)
|
||||
zend_resource *res = Z_RES_P(zv);
|
||||
|
||||
if (res->type >= 0) {
|
||||
|
||||
|
||||
zend_resource_dtor(res);
|
||||
}
|
||||
efree_size(res, sizeof(zend_resource));
|
||||
@ -177,7 +177,7 @@ void plist_entry_destructor(zval *zv)
|
||||
|
||||
if (res->type >= 0) {
|
||||
zend_rsrc_list_dtors_entry *ld;
|
||||
|
||||
|
||||
ld = zend_hash_index_find_ptr(&list_destructors, res->type);
|
||||
if (ld) {
|
||||
if (ld->plist_dtor_ex) {
|
||||
@ -239,7 +239,7 @@ static int clean_module_resource(zval *zv, void *arg)
|
||||
|
||||
static int zend_clean_module_rsrc_dtors_cb(zval *zv, void *arg)
|
||||
{
|
||||
zend_rsrc_list_dtors_entry *ld = (zend_rsrc_list_dtors_entry *)Z_PTR_P(zv);
|
||||
zend_rsrc_list_dtors_entry *ld = (zend_rsrc_list_dtors_entry *)Z_PTR_P(zv);
|
||||
int module_number = *(int *)arg;
|
||||
if (ld->module_number == module_number) {
|
||||
zend_hash_apply_with_argument(&EG(persistent_list), clean_module_resource, (void *) &(ld->resource_id));
|
||||
@ -260,15 +260,15 @@ ZEND_API int zend_register_list_destructors_ex(rsrc_dtor_func_t ld, rsrc_dtor_fu
|
||||
{
|
||||
zend_rsrc_list_dtors_entry *lde;
|
||||
zval zv;
|
||||
|
||||
lde = malloc(sizeof(zend_rsrc_list_dtors_entry));
|
||||
|
||||
lde = malloc(sizeof(zend_rsrc_list_dtors_entry));
|
||||
lde->list_dtor_ex = ld;
|
||||
lde->plist_dtor_ex = pld;
|
||||
lde->module_number = module_number;
|
||||
lde->resource_id = list_destructors.nNextFreeElement;
|
||||
lde->type_name = type_name;
|
||||
ZVAL_PTR(&zv, lde);
|
||||
|
||||
|
||||
if (zend_hash_next_index_insert(&list_destructors, &zv) == NULL) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -75,14 +75,14 @@ extern ZEND_API int le_index_ptr; /* list entry type for index pointers */
|
||||
#define ZEND_FETCH_RESOURCE(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type) \
|
||||
rsrc = (rsrc_type) zend_fetch_resource(passed_id, default_id, resource_type_name, NULL, 1, resource_type); \
|
||||
ZEND_VERIFY_RESOURCE(rsrc);
|
||||
|
||||
|
||||
#define ZEND_FETCH_RESOURCE_NO_RETURN(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type) \
|
||||
(rsrc = (rsrc_type) zend_fetch_resource(passed_id, default_id, resource_type_name, NULL, 1, resource_type))
|
||||
|
||||
#define ZEND_FETCH_RESOURCE2(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type1, resource_type2) \
|
||||
rsrc = (rsrc_type) zend_fetch_resource(passed_id, default_id, resource_type_name, NULL, 2, resource_type1, resource_type2); \
|
||||
ZEND_VERIFY_RESOURCE(rsrc);
|
||||
|
||||
|
||||
#define ZEND_FETCH_RESOURCE2_NO_RETURN(rsrc, rsrc_type, passed_id, default_id, resource_type_name, resource_type1, resource_type2) \
|
||||
(rsrc = (rsrc_type) zend_fetch_resource(passed_id, default_id, resource_type_name, NULL, 2, resource_type1, resource_type2))
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -105,7 +105,7 @@ ZEND_API void zend_llist_del_element(zend_llist *l, void *element, int (*compare
|
||||
ZEND_API void zend_llist_destroy(zend_llist *l)
|
||||
{
|
||||
zend_llist_element *current=l->head, *next;
|
||||
|
||||
|
||||
while (current) {
|
||||
next = current->next;
|
||||
if (l->dtor) {
|
||||
@ -141,7 +141,7 @@ ZEND_API void zend_llist_remove_tail(zend_llist *l)
|
||||
|
||||
l->tail = old_tail->prev;
|
||||
--l->count;
|
||||
|
||||
|
||||
if (l->dtor) {
|
||||
l->dtor(old_tail->data);
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2013 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -95,7 +95,7 @@ ZEND_API void rebuild_object_properties(zend_object *zobj) /* {{{ */
|
||||
(prop_info->flags & ZEND_ACC_PRIVATE) != 0 &&
|
||||
Z_TYPE_P(OBJ_PROP(zobj, prop_info->offset)) != IS_UNDEF) {
|
||||
zval zv;
|
||||
|
||||
|
||||
ZVAL_INDIRECT(&zv, OBJ_PROP(zobj, prop_info->offset));
|
||||
zend_hash_add(zobj->properties, prop_info->name, &zv);
|
||||
}
|
||||
@ -338,7 +338,7 @@ static zend_always_inline zend_property_info *zend_get_property_info_quick(zend_
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (EG(scope) != ce
|
||||
&& EG(scope)
|
||||
&& is_derived_class(ce, EG(scope))
|
||||
@ -784,7 +784,7 @@ static void zend_std_unset_property(zval *object, zval *member, void **cache_slo
|
||||
goto exit;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* magic unset */
|
||||
if (zobj->ce->__unset) {
|
||||
zend_long *guard = zend_get_property_guard(zobj, Z_STR_P(member));
|
||||
@ -1237,7 +1237,7 @@ ZEND_API zval *zend_std_get_static_property(zend_class_entry *ce, zend_string *p
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
return &CE_STATIC_MEMBERS(ce)[property_info->offset];
|
||||
}
|
||||
/* }}} */
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include "zend_globals.h"
|
||||
#include "zend_variables.h"
|
||||
#include "zend_API.h"
|
||||
#include "zend_objects_API.h"
|
||||
#include "zend_objects_API.h"
|
||||
|
||||
ZEND_API void zend_objects_store_init(zend_objects_store *objects, uint32_t init_size)
|
||||
{
|
||||
@ -167,7 +167,7 @@ ZEND_API void zend_objects_store_del(zend_object *object) /* {{{ */
|
||||
GC_REFCOUNT(object)--;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (GC_REFCOUNT(object) == 0) {
|
||||
uint32_t handle = object->handle;
|
||||
void *ptr;
|
||||
@ -190,7 +190,7 @@ ZEND_API void zend_objects_store_del(zend_object *object) /* {{{ */
|
||||
efree(ptr);
|
||||
ZEND_OBJECTS_STORE_ADD_TO_FREE_LIST(handle);
|
||||
}
|
||||
|
||||
|
||||
if (failure) {
|
||||
zend_bailout();
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -169,7 +169,7 @@ ZEND_API void zend_cleanup_internal_class_data(zend_class_entry *ce)
|
||||
{
|
||||
if (CE_STATIC_MEMBERS(ce)) {
|
||||
int i;
|
||||
|
||||
|
||||
for (i = 0; i < ce->default_static_members_count; i++) {
|
||||
zval_ptr_dtor(&CE_STATIC_MEMBERS(ce)[i]);
|
||||
}
|
||||
@ -187,7 +187,7 @@ void _destroy_zend_class_traits_info(zend_class_entry *ce)
|
||||
if (ce->num_traits > 0 && ce->traits) {
|
||||
efree(ce->traits);
|
||||
}
|
||||
|
||||
|
||||
if (ce->trait_aliases) {
|
||||
size_t i = 0;
|
||||
while (ce->trait_aliases[i]) {
|
||||
@ -200,21 +200,21 @@ void _destroy_zend_class_traits_info(zend_class_entry *ce)
|
||||
}
|
||||
efree(ce->trait_aliases[i]->trait_method);
|
||||
}
|
||||
|
||||
|
||||
if (ce->trait_aliases[i]->alias) {
|
||||
zend_string_release(ce->trait_aliases[i]->alias);
|
||||
}
|
||||
|
||||
|
||||
efree(ce->trait_aliases[i]);
|
||||
i++;
|
||||
}
|
||||
|
||||
|
||||
efree(ce->trait_aliases);
|
||||
}
|
||||
|
||||
if (ce->trait_precedences) {
|
||||
size_t i = 0;
|
||||
|
||||
|
||||
while (ce->trait_precedences[i]) {
|
||||
zend_string_release(ce->trait_precedences[i]->trait_method->method_name);
|
||||
zend_string_release(ce->trait_precedences[i]->trait_method->class_name);
|
||||
@ -234,7 +234,7 @@ void _destroy_zend_class_traits_info(zend_class_entry *ce)
|
||||
ZEND_API void destroy_zend_class(zval *zv)
|
||||
{
|
||||
zend_class_entry *ce = Z_PTR_P(zv);
|
||||
|
||||
|
||||
if (--ce->refcount > 0) {
|
||||
return;
|
||||
}
|
||||
@ -270,9 +270,9 @@ ZEND_API void destroy_zend_class(zval *zv)
|
||||
if (ce->info.user.doc_comment) {
|
||||
zend_string_release(ce->info.user.doc_comment);
|
||||
}
|
||||
|
||||
|
||||
_destroy_zend_class_traits_info(ce);
|
||||
|
||||
|
||||
break;
|
||||
case ZEND_INTERNAL_CLASS:
|
||||
if (ce->default_properties_table) {
|
||||
@ -399,9 +399,9 @@ zend_op *get_next_op(zend_op_array *op_array)
|
||||
CG(context).opcodes_size *= 4;
|
||||
op_array_alloc_ops(op_array, CG(context).opcodes_size);
|
||||
}
|
||||
|
||||
|
||||
next_op = &(op_array->opcodes[next_op_num]);
|
||||
|
||||
|
||||
init_op(next_op);
|
||||
|
||||
return next_op;
|
||||
@ -462,16 +462,16 @@ static void zend_check_finally_breakout(zend_op_array *op_array, uint32_t op_num
|
||||
CG(active_op_array) = op_array;
|
||||
CG(zend_lineno) = op_array->opcodes[op_num].lineno;
|
||||
zend_error_noreturn(E_COMPILE_ERROR, "jump into a finally block is disallowed");
|
||||
} else if ((op_num >= op_array->try_catch_array[i].finally_op
|
||||
} else if ((op_num >= op_array->try_catch_array[i].finally_op
|
||||
&& op_num <= op_array->try_catch_array[i].finally_end)
|
||||
&& (dst_num > op_array->try_catch_array[i].finally_end
|
||||
&& (dst_num > op_array->try_catch_array[i].finally_end
|
||||
|| dst_num < op_array->try_catch_array[i].finally_op)) {
|
||||
CG(in_compilation) = 1;
|
||||
CG(active_op_array) = op_array;
|
||||
CG(zend_lineno) = op_array->opcodes[op_num].lineno;
|
||||
zend_error_noreturn(E_COMPILE_ERROR, "jump out of a finally block is disallowed");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void zend_adjust_fast_call(zend_op_array *op_array, uint32_t fast_call, uint32_t start, uint32_t end)
|
||||
@ -480,7 +480,7 @@ static void zend_adjust_fast_call(zend_op_array *op_array, uint32_t fast_call, u
|
||||
uint32_t op_num = 0;
|
||||
|
||||
for (i = 0; i < op_array->last_try_catch; i++) {
|
||||
if (op_array->try_catch_array[i].finally_op > start
|
||||
if (op_array->try_catch_array[i].finally_op > start
|
||||
&& op_array->try_catch_array[i].finally_end < end) {
|
||||
op_num = op_array->try_catch_array[i].finally_op;
|
||||
start = op_array->try_catch_array[i].finally_end;
|
||||
@ -514,7 +514,7 @@ static void zend_resolve_fast_call(zend_op_array *op_array, uint32_t fast_call,
|
||||
op_array->opcodes[fast_call].extended_value = ZEND_FAST_CALL_FROM_FINALLY;
|
||||
op_array->opcodes[fast_call].op2.opline_num = finally_op_num - 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void zend_resolve_finally_call(zend_op_array *op_array, uint32_t op_num, uint32_t dst_num)
|
||||
@ -537,7 +537,7 @@ static void zend_resolve_finally_call(zend_op_array *op_array, uint32_t op_num,
|
||||
dst_num > op_array->try_catch_array[i].finally_end)) {
|
||||
/* we have a jump out of try block that needs executing finally */
|
||||
uint32_t fast_call_var;
|
||||
|
||||
|
||||
/* Must be ZEND_FAST_RET */
|
||||
ZEND_ASSERT(op_array->opcodes[op_array->try_catch_array[i].finally_end].opcode == ZEND_FAST_RET);
|
||||
fast_call_var = op_array->opcodes[op_array->try_catch_array[i].finally_end].op1.var;
|
||||
@ -603,7 +603,7 @@ static void zend_resolve_finally_call(zend_op_array *op_array, uint32_t op_num,
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void zend_resolve_finally_ret(zend_op_array *op_array, uint32_t op_num)
|
||||
@ -671,7 +671,7 @@ static void zend_resolve_finally_calls(zend_op_array *op_array)
|
||||
|
||||
ZEND_PASS_TWO_UPDATE_CONSTANT(op_array, opline->op2);
|
||||
zend_resolve_goto_label(op_array, opline, 1);
|
||||
opline->op2.constant = num;
|
||||
opline->op2.constant = num;
|
||||
}
|
||||
/* break omitted intentionally */
|
||||
case ZEND_JMP:
|
||||
|
@ -321,7 +321,7 @@ ZEND_API void convert_to_long_base(zval *op, int base) /* {{{ */
|
||||
case IS_OBJECT:
|
||||
{
|
||||
zval dst;
|
||||
|
||||
|
||||
convert_object_to_type(op, &dst, IS_LONG, convert_to_long);
|
||||
zval_dtor(op);
|
||||
|
||||
@ -378,7 +378,7 @@ ZEND_API void convert_to_double(zval *op) /* {{{ */
|
||||
case IS_OBJECT:
|
||||
{
|
||||
zval dst;
|
||||
|
||||
|
||||
convert_object_to_type(op, &dst, IS_DOUBLE, convert_to_double);
|
||||
zval_dtor(op);
|
||||
|
||||
@ -401,7 +401,7 @@ ZEND_API void convert_to_null(zval *op) /* {{{ */
|
||||
if (Z_TYPE_P(op) == IS_OBJECT) {
|
||||
if (Z_OBJ_HT_P(op)->cast_object) {
|
||||
zval org;
|
||||
|
||||
|
||||
ZVAL_COPY_VALUE(&org, op);
|
||||
if (Z_OBJ_HT_P(op)->cast_object(&org, op, IS_NULL) == SUCCESS) {
|
||||
zval_dtor(&org);
|
||||
@ -461,7 +461,7 @@ ZEND_API void convert_to_boolean(zval *op) /* {{{ */
|
||||
case IS_OBJECT:
|
||||
{
|
||||
zval dst;
|
||||
|
||||
|
||||
convert_object_to_type(op, &dst, _IS_BOOL, convert_to_boolean);
|
||||
zval_dtor(op);
|
||||
|
||||
@ -510,7 +510,7 @@ ZEND_API void _convert_to_string(zval *op ZEND_FILE_LINE_DC) /* {{{ */
|
||||
case IS_DOUBLE: {
|
||||
zend_string *str;
|
||||
double dval = Z_DVAL_P(op);
|
||||
|
||||
|
||||
str = zend_strpprintf(0, "%.*G", (int) EG(precision), dval);
|
||||
/* %G already handles removing trailing zeros from the fractional part, yay */
|
||||
ZVAL_NEW_STR(op, str);
|
||||
@ -523,7 +523,7 @@ ZEND_API void _convert_to_string(zval *op ZEND_FILE_LINE_DC) /* {{{ */
|
||||
break;
|
||||
case IS_OBJECT: {
|
||||
zval dst;
|
||||
|
||||
|
||||
convert_object_to_type(op, &dst, IS_STRING, convert_to_string);
|
||||
|
||||
if (Z_TYPE(dst) == IS_STRING) {
|
||||
@ -1147,7 +1147,7 @@ ZEND_API int mod_function(zval *result, zval *op1, zval *op2) /* {{{ */
|
||||
if (op1 == result) {
|
||||
zval_dtor(result);
|
||||
}
|
||||
|
||||
|
||||
if (op2_lval == 0) {
|
||||
zend_error(E_WARNING, "Division by zero");
|
||||
ZVAL_FALSE(result);
|
||||
@ -1280,7 +1280,7 @@ ZEND_API int bitwise_or_function(zval *result, zval *op1, zval *op2) /* {{{ */
|
||||
ZVAL_LONG(result, Z_LVAL_P(op1) | Z_LVAL_P(op2));
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
ZVAL_DEREF(op1);
|
||||
ZVAL_DEREF(op2);
|
||||
|
||||
@ -1338,7 +1338,7 @@ ZEND_API int bitwise_and_function(zval *result, zval *op1, zval *op2) /* {{{ */
|
||||
ZVAL_LONG(result, Z_LVAL_P(op1) & Z_LVAL_P(op2));
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
ZVAL_DEREF(op1);
|
||||
ZVAL_DEREF(op2);
|
||||
|
||||
@ -1396,7 +1396,7 @@ ZEND_API int bitwise_xor_function(zval *result, zval *op1, zval *op2) /* {{{ */
|
||||
ZVAL_LONG(result, Z_LVAL_P(op1) ^ Z_LVAL_P(op2));
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
ZVAL_DEREF(op1);
|
||||
ZVAL_DEREF(op2);
|
||||
|
||||
@ -2173,7 +2173,7 @@ try_again:
|
||||
/* proxy object */
|
||||
zval rv;
|
||||
zval *val;
|
||||
|
||||
|
||||
val = Z_OBJ_HANDLER_P(op1, get)(op1, &rv);
|
||||
Z_ADDREF_P(val);
|
||||
fast_increment_function(val);
|
||||
@ -2182,7 +2182,7 @@ try_again:
|
||||
} else if (Z_OBJ_HANDLER_P(op1, do_operation)) {
|
||||
zval op2;
|
||||
int res;
|
||||
|
||||
|
||||
ZVAL_LONG(&op2, 1);
|
||||
res = Z_OBJ_HANDLER_P(op1, do_operation)(ZEND_ADD, op1, op1, &op2);
|
||||
zval_ptr_dtor(&op2);
|
||||
@ -2246,7 +2246,7 @@ try_again:
|
||||
/* proxy object */
|
||||
zval rv;
|
||||
zval *val;
|
||||
|
||||
|
||||
val = Z_OBJ_HANDLER_P(op1, get)(op1, &rv);
|
||||
Z_ADDREF_P(val);
|
||||
fast_decrement_function(val);
|
||||
@ -2255,7 +2255,7 @@ try_again:
|
||||
} else if (Z_OBJ_HANDLER_P(op1, do_operation)) {
|
||||
zval op2;
|
||||
int res;
|
||||
|
||||
|
||||
ZVAL_LONG(&op2, 1);
|
||||
res = Z_OBJ_HANDLER_P(op1, do_operation)(ZEND_SUB, op1, op1, &op2);
|
||||
zval_ptr_dtor(&op2);
|
||||
@ -2620,11 +2620,12 @@ ZEND_API zend_string *zend_long_to_str(zend_long num) /* {{{ */
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_API zend_uchar is_numeric_str_function(const zend_string *str, zend_long *lval, double *dval) {
|
||||
ZEND_API zend_uchar is_numeric_str_function(const zend_string *str, zend_long *lval, double *dval) /* {{{ */ {
|
||||
return is_numeric_string_ex(str->val, str->len, lval, dval, -1, NULL);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
ZEND_API zend_uchar _is_numeric_string_ex(const char *str, size_t length, zend_long *lval, double *dval, int allow_errors, int *oflow_info)
|
||||
ZEND_API zend_uchar _is_numeric_string_ex(const char *str, size_t length, zend_long *lval, double *dval, int allow_errors, int *oflow_info) /* {{{ */
|
||||
{
|
||||
const char *ptr;
|
||||
int base = 10, digits = 0, dp_or_e = 0;
|
||||
@ -2760,6 +2761,56 @@ process_double:
|
||||
return IS_DOUBLE;
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static zend_always_inline void zend_memstr_ex_pre(unsigned int td[], const char *needle, size_t needle_len) /* {{{ */ {
|
||||
int i;
|
||||
|
||||
for (i = 0; i < 256; i++) {
|
||||
td[i] = needle_len + 1;
|
||||
}
|
||||
|
||||
for (i = 0; i < needle_len; i++) {
|
||||
td[(unsigned char)needle[i]] = (int)needle_len - i;
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/*
|
||||
* String matching - Sunday algorithm
|
||||
* http://www.iti.fh-flensburg.de/lang/algorithmen/pattern/sundayen.htm
|
||||
*/
|
||||
ZEND_API const char* zend_memnstr_ex(const char *haystack, const char *needle, size_t needle_len, char *end) /* {{{ */
|
||||
{
|
||||
unsigned int td[256];
|
||||
register size_t i;
|
||||
const unsigned register char *p;
|
||||
|
||||
if (needle_len == 0 || (end - haystack) == 0) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
zend_memstr_ex_pre(td, needle, needle_len);
|
||||
|
||||
p = (const unsigned char *)haystack;
|
||||
end -= needle_len;
|
||||
|
||||
while (p <= (unsigned char *)end) {
|
||||
for (i = 0; i < needle_len; i++) {
|
||||
if (needle[i] != p[i]) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (i == needle_len) {
|
||||
return (const char *)p;
|
||||
}
|
||||
p += td[p[needle_len]];
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
|
@ -87,6 +87,8 @@ ZEND_API zend_bool instanceof_function(const zend_class_entry *instance_ce, cons
|
||||
*/
|
||||
ZEND_API zend_uchar _is_numeric_string_ex(const char *str, size_t length, zend_long *lval, double *dval, int allow_errors, int *oflow_info);
|
||||
|
||||
ZEND_API const char* zend_memnstr_ex(const char *haystack, const char *needle, size_t needle_len, char *end);
|
||||
|
||||
END_EXTERN_C()
|
||||
|
||||
#if SIZEOF_ZEND_LONG == 4
|
||||
@ -181,23 +183,27 @@ zend_memnstr(const char *haystack, const char *needle, size_t needle_len, char *
|
||||
return NULL;
|
||||
}
|
||||
|
||||
end -= needle_len;
|
||||
if (EXPECTED(off_s < 1024 || needle_len < 3)) {
|
||||
end -= needle_len;
|
||||
|
||||
while (p <= end) {
|
||||
if ((p = (char *)memchr(p, *needle, (end-p+1))) && ne == p[needle_len-1]) {
|
||||
if (!memcmp(needle, p, needle_len-1)) {
|
||||
return p;
|
||||
while (p <= end) {
|
||||
if ((p = (char *)memchr(p, *needle, (end-p+1))) && ne == p[needle_len-1]) {
|
||||
if (!memcmp(needle, p, needle_len-1)) {
|
||||
return p;
|
||||
}
|
||||
}
|
||||
|
||||
if (p == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
p++;
|
||||
}
|
||||
|
||||
if (p == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
p++;
|
||||
return NULL;
|
||||
} else {
|
||||
return zend_memnstr_ex(haystack, needle, needle_len, end);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static zend_always_inline const void *zend_memrchr(const void *s, int c, size_t n)
|
||||
@ -567,7 +573,7 @@ static zend_always_inline int fast_add_function(zval *result, zval *op1, zval *o
|
||||
__asm__(
|
||||
"movl (%1), %%eax\n\t"
|
||||
"addl (%2), %%eax\n\t"
|
||||
"jo 0f\n\t"
|
||||
"jo 0f\n\t"
|
||||
"movl %%eax, (%0)\n\t"
|
||||
"movl %3, %c5(%0)\n\t"
|
||||
"jmp 1f\n"
|
||||
@ -578,7 +584,7 @@ static zend_always_inline int fast_add_function(zval *result, zval *op1, zval *o
|
||||
"movl %4, %c5(%0)\n\t"
|
||||
"fstpl (%0)\n"
|
||||
"1:"
|
||||
:
|
||||
:
|
||||
: "r"(&result->value),
|
||||
"r"(&op1->value),
|
||||
"r"(&op2->value),
|
||||
@ -590,7 +596,7 @@ static zend_always_inline int fast_add_function(zval *result, zval *op1, zval *o
|
||||
__asm__(
|
||||
"movq (%1), %%rax\n\t"
|
||||
"addq (%2), %%rax\n\t"
|
||||
"jo 0f\n\t"
|
||||
"jo 0f\n\t"
|
||||
"movq %%rax, (%0)\n\t"
|
||||
"movl %3, %c5(%0)\n\t"
|
||||
"jmp 1f\n"
|
||||
@ -601,7 +607,7 @@ static zend_always_inline int fast_add_function(zval *result, zval *op1, zval *o
|
||||
"movl %4, %c5(%0)\n\t"
|
||||
"fstpl (%0)\n"
|
||||
"1:"
|
||||
:
|
||||
:
|
||||
: "r"(&result->value),
|
||||
"r"(&op1->value),
|
||||
"r"(&op2->value),
|
||||
@ -678,7 +684,7 @@ static zend_always_inline int fast_sub_function(zval *result, zval *op1, zval *o
|
||||
__asm__(
|
||||
"movl (%1), %%eax\n\t"
|
||||
"subl (%2), %%eax\n\t"
|
||||
"jo 0f\n\t"
|
||||
"jo 0f\n\t"
|
||||
"movl %%eax, (%0)\n\t"
|
||||
"movl %3, %c5(%0)\n\t"
|
||||
"jmp 1f\n"
|
||||
@ -693,7 +699,7 @@ static zend_always_inline int fast_sub_function(zval *result, zval *op1, zval *o
|
||||
"movl %4, %c5(%0)\n\t"
|
||||
"fstpl (%0)\n"
|
||||
"1:"
|
||||
:
|
||||
:
|
||||
: "r"(&result->value),
|
||||
"r"(&op1->value),
|
||||
"r"(&op2->value),
|
||||
@ -705,7 +711,7 @@ static zend_always_inline int fast_sub_function(zval *result, zval *op1, zval *o
|
||||
__asm__(
|
||||
"movq (%1), %%rax\n\t"
|
||||
"subq (%2), %%rax\n\t"
|
||||
"jo 0f\n\t"
|
||||
"jo 0f\n\t"
|
||||
"movq %%rax, (%0)\n\t"
|
||||
"movl %3, %c5(%0)\n\t"
|
||||
"jmp 1f\n"
|
||||
@ -720,7 +726,7 @@ static zend_always_inline int fast_sub_function(zval *result, zval *op1, zval *o
|
||||
"movl %4, %c5(%0)\n\t"
|
||||
"fstpl (%0)\n"
|
||||
"1:"
|
||||
:
|
||||
:
|
||||
: "r"(&result->value),
|
||||
"r"(&op1->value),
|
||||
"r"(&op2->value),
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -42,7 +42,7 @@ ZEND_API void zend_ptr_stack_n_push(zend_ptr_stack *stack, int count, ...)
|
||||
{
|
||||
va_list ptr;
|
||||
void *elem;
|
||||
|
||||
|
||||
ZEND_PTR_STACK_RESIZE_IF_NEEDED(stack, count)
|
||||
|
||||
va_start(ptr, count);
|
||||
@ -60,7 +60,7 @@ ZEND_API void zend_ptr_stack_n_pop(zend_ptr_stack *stack, int count, ...)
|
||||
{
|
||||
va_list ptr;
|
||||
void **elem;
|
||||
|
||||
|
||||
va_start(ptr, count);
|
||||
while (count>0) {
|
||||
elem = va_arg(ptr, void **);
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -86,10 +86,10 @@ ZEND_API void zend_qsort_r(void *base, size_t nmemb, size_t siz, compare_r_func_
|
||||
|
||||
for (; seg2 >= seg1 && compare(seg2, begin, arg) > 0;
|
||||
seg2 -= siz);
|
||||
|
||||
|
||||
if (seg1 >= seg2)
|
||||
break;
|
||||
|
||||
|
||||
_zend_qsort_swap(seg1, seg2, siz);
|
||||
|
||||
seg1 += siz;
|
||||
@ -99,7 +99,7 @@ ZEND_API void zend_qsort_r(void *base, size_t nmemb, size_t siz, compare_r_func_
|
||||
_zend_qsort_swap(begin, seg2, siz);
|
||||
|
||||
seg2p = seg2;
|
||||
|
||||
|
||||
if ((seg2p - begin) <= (end - seg2p)) {
|
||||
if ((seg2p + siz) < end) {
|
||||
begin_stack[loop] = seg2p + siz;
|
||||
@ -123,9 +123,9 @@ ZEND_API void zend_qsort(void *base, size_t nmemb, size_t siz, compare_func_t co
|
||||
zend_qsort_r(base, nmemb, siz, (compare_r_func_t)compare, NULL);
|
||||
}
|
||||
|
||||
/*
|
||||
/*
|
||||
* Local Variables:
|
||||
* c-basic-offset: 4
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 4
|
||||
* End:
|
||||
* vim600: fdm=marker
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -136,7 +136,7 @@ ZEND_API int zend_stream_open(const char *filename, zend_file_handle *handle) /*
|
||||
handle->filename = filename;
|
||||
handle->free_filename = 0;
|
||||
memset(&handle->handle.stream.mmap, 0, sizeof(zend_mmap));
|
||||
|
||||
|
||||
return (handle->handle.fp) ? SUCCESS : FAILURE;
|
||||
} /* }}} */
|
||||
|
||||
@ -169,7 +169,7 @@ static size_t zend_stream_read(zend_file_handle *file_handle, char *buf, size_t
|
||||
buf[n] = (char)c;
|
||||
}
|
||||
if (c == '\n') {
|
||||
buf[n++] = (char)c;
|
||||
buf[n++] = (char)c;
|
||||
}
|
||||
|
||||
return n;
|
||||
@ -188,11 +188,11 @@ ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t
|
||||
}
|
||||
}
|
||||
|
||||
switch (file_handle->type) {
|
||||
switch (file_handle->type) {
|
||||
case ZEND_HANDLE_FD:
|
||||
file_handle->type = ZEND_HANDLE_FP;
|
||||
file_handle->handle.fp = fdopen(file_handle->handle.fd, "rb");
|
||||
/* no break; */
|
||||
/* no break; */
|
||||
case ZEND_HANDLE_FP:
|
||||
if (!file_handle->handle.fp) {
|
||||
return FAILURE;
|
||||
@ -203,17 +203,17 @@ ZEND_API int zend_stream_fixup(zend_file_handle *file_handle, char **buf, size_t
|
||||
file_handle->handle.stream.closer = (zend_stream_closer_t)zend_stream_stdio_closer;
|
||||
file_handle->handle.stream.fsizer = (zend_stream_fsizer_t)zend_stream_stdio_fsizer;
|
||||
memset(&file_handle->handle.stream.mmap, 0, sizeof(file_handle->handle.stream.mmap));
|
||||
/* no break; */
|
||||
/* no break; */
|
||||
case ZEND_HANDLE_STREAM:
|
||||
/* nothing to do */
|
||||
break;
|
||||
|
||||
|
||||
case ZEND_HANDLE_MAPPED:
|
||||
file_handle->handle.stream.mmap.pos = 0;
|
||||
*buf = file_handle->handle.stream.mmap.buf;
|
||||
*len = file_handle->handle.stream.mmap.len;
|
||||
return SUCCESS;
|
||||
|
||||
|
||||
default:
|
||||
return FAILURE;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ typedef size_t (*zend_stream_fsizer_t)(void* handle);
|
||||
typedef size_t (*zend_stream_reader_t)(void* handle, char *buf, size_t len);
|
||||
typedef void (*zend_stream_closer_t)(void* handle);
|
||||
|
||||
#define ZEND_MMAP_AHEAD 32
|
||||
#define ZEND_MMAP_AHEAD 32
|
||||
|
||||
typedef enum {
|
||||
ZEND_HANDLE_FILENAME,
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -49,7 +49,7 @@ void zend_interned_strings_init(void)
|
||||
zend_string *str;
|
||||
|
||||
zend_hash_init(&CG(interned_strings), 1024, NULL, _str_dtor, 1);
|
||||
|
||||
|
||||
CG(interned_strings).nTableMask = CG(interned_strings).nTableSize - 1;
|
||||
CG(interned_strings).arData = (Bucket*) pecalloc(CG(interned_strings).nTableSize, sizeof(Bucket), 1);
|
||||
CG(interned_strings).arHash = (uint32_t*) pecalloc(CG(interned_strings).nTableSize, sizeof(uint32_t), 1);
|
||||
@ -101,7 +101,7 @@ static zend_string *zend_new_interned_string_int(zend_string *str)
|
||||
}
|
||||
idx = Z_NEXT(p->val);
|
||||
}
|
||||
|
||||
|
||||
GC_REFCOUNT(str) = 1;
|
||||
GC_FLAGS(str) |= IS_STR_INTERNED;
|
||||
|
||||
@ -123,7 +123,7 @@ static zend_string *zend_new_interned_string_int(zend_string *str)
|
||||
}
|
||||
|
||||
HANDLE_BLOCK_INTERRUPTIONS();
|
||||
|
||||
|
||||
idx = CG(interned_strings).nNumUsed++;
|
||||
CG(interned_strings).nNumOfElements++;
|
||||
p = CG(interned_strings).arData + idx;
|
||||
@ -134,7 +134,7 @@ static zend_string *zend_new_interned_string_int(zend_string *str)
|
||||
nIndex = h & CG(interned_strings).nTableMask;
|
||||
Z_NEXT(p->val) = CG(interned_strings).arHash[nIndex];
|
||||
CG(interned_strings).arHash[nIndex] = idx;
|
||||
|
||||
|
||||
HANDLE_UNBLOCK_INTERRUPTIONS();
|
||||
|
||||
return str;
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -236,7 +236,7 @@ static zend_always_inline zend_bool zend_string_equals(zend_string *s1, zend_str
|
||||
* numbers are not useable at all. The remaining 128 odd numbers
|
||||
* (except for the number 1) work more or less all equally well. They
|
||||
* all distribute in an acceptable way and this way fill a hash table
|
||||
* with an average percent of approx. 86%.
|
||||
* with an average percent of approx. 86%.
|
||||
*
|
||||
* If one compares the Chi^2 values of the variants, the number 33 not
|
||||
* even has the best value. But the number 33 and a few other equally
|
||||
|
@ -139,7 +139,7 @@ typedef unsigned long int uint32_t;
|
||||
#if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
|
||||
# if defined(__LITTLE_ENDIAN__)
|
||||
# undef WORDS_BIGENDIAN
|
||||
# else
|
||||
# else
|
||||
# if defined(__BIG_ENDIAN__)
|
||||
# define WORDS_BIGENDIAN
|
||||
# endif
|
||||
@ -432,12 +432,12 @@ static void destroy_freelist(void);
|
||||
#ifdef ZTS
|
||||
|
||||
static MUTEX_T dtoa_mutex;
|
||||
static MUTEX_T pow5mult_mutex;
|
||||
static MUTEX_T pow5mult_mutex;
|
||||
|
||||
#define _THREAD_PRIVATE_MUTEX_LOCK(x) tsrm_mutex_lock(x);
|
||||
#define _THREAD_PRIVATE_MUTEX_UNLOCK(x) tsrm_mutex_unlock(x);
|
||||
|
||||
#else
|
||||
#else
|
||||
|
||||
#define _THREAD_PRIVATE_MUTEX_LOCK(x)
|
||||
#define _THREAD_PRIVATE_MUTEX_UNLOCK(x)
|
||||
@ -1394,7 +1394,7 @@ static void destroy_freelist(void)
|
||||
freelist[i] = NULL;
|
||||
}
|
||||
_THREAD_PRIVATE_MUTEX_UNLOCK(dtoa_mutex);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -2639,7 +2639,7 @@ ZEND_API double zend_oct_strtod(const char *str, const char **endptr)
|
||||
while ((c = *s++)) {
|
||||
if (c < '0' || c > '7') {
|
||||
/* break and return the current value if the number is not well-formed
|
||||
* that's what Linux strtol() does
|
||||
* that's what Linux strtol() does
|
||||
*/
|
||||
break;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -156,7 +156,7 @@ typedef struct _Bucket {
|
||||
zend_string *key; /* string key or NULL for numerics */
|
||||
} Bucket;
|
||||
|
||||
typedef struct _HashTable {
|
||||
typedef struct _HashTable {
|
||||
union {
|
||||
struct {
|
||||
ZEND_ENDIAN_LOHI_3(
|
||||
@ -170,7 +170,7 @@ typedef struct _HashTable {
|
||||
uint32_t nTableMask;
|
||||
uint32_t nNumUsed;
|
||||
uint32_t nNumOfElements;
|
||||
uint32_t nInternalPointer;
|
||||
uint32_t nInternalPointer;
|
||||
zend_long nNextFreeElement;
|
||||
Bucket *arData;
|
||||
uint32_t *arHash;
|
||||
@ -333,7 +333,7 @@ static zend_always_inline zend_uchar zval_get_type(const zval* pz) {
|
||||
(Z_GC_FLAGS(zval) & ~IS_OBJ_APPLY_COUNT) | \
|
||||
((Z_GC_FLAGS(zval) & IS_OBJ_APPLY_COUNT) + 1); \
|
||||
} while (0)
|
||||
|
||||
|
||||
#define Z_OBJ_DEC_APPLY_COUNT(zval) do { \
|
||||
Z_GC_FLAGS(zval) = \
|
||||
(Z_GC_FLAGS(zval) & ~IS_OBJ_APPLY_COUNT) | \
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
@ -39,7 +39,7 @@ ZEND_API void _zval_dtor_func(zend_refcounted *p ZEND_FILE_LINE_DC)
|
||||
}
|
||||
case IS_ARRAY: {
|
||||
zend_array *arr = (zend_array*)p;
|
||||
|
||||
|
||||
if (arr != &EG(symbol_table)) {
|
||||
/* break possible cycles */
|
||||
GC_TYPE(arr) = IS_NULL;
|
||||
@ -51,20 +51,20 @@ ZEND_API void _zval_dtor_func(zend_refcounted *p ZEND_FILE_LINE_DC)
|
||||
}
|
||||
case IS_CONSTANT_AST: {
|
||||
zend_ast_ref *ast = (zend_ast_ref*)p;
|
||||
|
||||
|
||||
zend_ast_destroy_and_free(ast->ast);
|
||||
efree_size(ast, sizeof(zend_ast_ref));
|
||||
break;
|
||||
}
|
||||
case IS_OBJECT: {
|
||||
zend_object *obj = (zend_object*)p;
|
||||
|
||||
|
||||
OBJ_RELEASE(obj);
|
||||
break;
|
||||
}
|
||||
case IS_RESOURCE: {
|
||||
zend_resource *res = (zend_resource*)p;
|
||||
|
||||
|
||||
if (--GC_REFCOUNT(res) == 0) {
|
||||
/* destroy resource */
|
||||
zend_list_free(res);
|
||||
@ -74,7 +74,7 @@ ZEND_API void _zval_dtor_func(zend_refcounted *p ZEND_FILE_LINE_DC)
|
||||
case IS_REFERENCE: {
|
||||
zend_reference *ref = (zend_reference*)p;
|
||||
if (--GC_REFCOUNT(ref) == 0) {
|
||||
|
||||
|
||||
i_zval_ptr_dtor(&ref->val ZEND_FILE_LINE_RELAY_CC);
|
||||
efree_size(ref, sizeof(zend_reference));
|
||||
}
|
||||
@ -97,7 +97,7 @@ ZEND_API void _zval_dtor_func_for_ptr(zend_refcounted *p ZEND_FILE_LINE_DC)
|
||||
}
|
||||
case IS_ARRAY: {
|
||||
zend_array *arr = (zend_array*)p;
|
||||
|
||||
|
||||
if (arr != &EG(symbol_table)) {
|
||||
/* break possible cycles */
|
||||
GC_TYPE(arr) = IS_NULL;
|
||||
@ -116,20 +116,20 @@ ZEND_API void _zval_dtor_func_for_ptr(zend_refcounted *p ZEND_FILE_LINE_DC)
|
||||
}
|
||||
case IS_OBJECT: {
|
||||
zend_object *obj = (zend_object*)p;
|
||||
|
||||
|
||||
zend_objects_store_del(obj);
|
||||
break;
|
||||
}
|
||||
case IS_RESOURCE: {
|
||||
zend_resource *res = (zend_resource*)p;
|
||||
|
||||
|
||||
/* destroy resource */
|
||||
zend_list_free(res);
|
||||
break;
|
||||
}
|
||||
case IS_REFERENCE: {
|
||||
zend_reference *ref = (zend_reference*)p;
|
||||
|
||||
|
||||
i_zval_ptr_dtor(&ref->val ZEND_FILE_LINE_RELAY_CC);
|
||||
efree_size(ref, sizeof(zend_reference));
|
||||
break;
|
||||
@ -237,7 +237,7 @@ ZEND_API void _zval_copy_ctor_func(zval *zvalue ZEND_FILE_LINE_DC)
|
||||
break;
|
||||
case IS_ARRAY: {
|
||||
HashTable *ht;
|
||||
|
||||
|
||||
if (Z_ARR_P(zvalue) == &EG(symbol_table)) {
|
||||
return; /* do nothing */
|
||||
}
|
||||
@ -264,7 +264,7 @@ ZEND_API void _zval_copy_ctor_func(zval *zvalue ZEND_FILE_LINE_DC)
|
||||
}
|
||||
|
||||
|
||||
ZEND_API size_t zend_print_variable(zval *var)
|
||||
ZEND_API size_t zend_print_variable(zval *var)
|
||||
{
|
||||
return zend_print_zval(var, 0);
|
||||
}
|
||||
@ -308,10 +308,10 @@ ZEND_API int zval_copy_static_var(zval *p, int num_args, va_list args, zend_hash
|
||||
HashTable *target = va_arg(args, HashTable*);
|
||||
zend_bool is_ref;
|
||||
zval tmp;
|
||||
|
||||
|
||||
if (Z_CONST_FLAGS_P(p) & (IS_LEXICAL_VAR|IS_LEXICAL_REF)) {
|
||||
is_ref = Z_CONST_FLAGS_P(p) & IS_LEXICAL_REF;
|
||||
|
||||
|
||||
symbol_table = zend_rebuild_symbol_table();
|
||||
p = zend_hash_find(&symbol_table->ht, key->key);
|
||||
if (!p) {
|
||||
@ -349,7 +349,7 @@ ZEND_API int zval_copy_static_var(zval *p, int num_args, va_list args, zend_hash
|
||||
}
|
||||
} else if (Z_REFCOUNTED_P(p)) {
|
||||
Z_ADDREF_P(p);
|
||||
}
|
||||
}
|
||||
zend_hash_add(target, key->key, p);
|
||||
return ZEND_HASH_APPLY_KEEP;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@
|
||||
| Copyright (c) 1998-2014 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
|
@ -650,14 +650,14 @@ CWD_API void realpath_cache_del(const char *path, int path_len) /* {{{ */
|
||||
memcmp(path, (*bucket)->path, path_len) == 0) {
|
||||
realpath_cache_bucket *r = *bucket;
|
||||
*bucket = (*bucket)->next;
|
||||
|
||||
|
||||
/* if the pointers match then only subtract the length of the path */
|
||||
if(r->path == r->realpath) {
|
||||
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1;
|
||||
} else {
|
||||
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
|
||||
}
|
||||
|
||||
|
||||
free(r);
|
||||
return;
|
||||
} else {
|
||||
@ -733,7 +733,7 @@ static inline realpath_cache_bucket* realpath_cache_find(const char *path, int p
|
||||
realpath_cache_bucket *r = *bucket;
|
||||
*bucket = (*bucket)->next;
|
||||
|
||||
/* if the pointers match then only subtract the length of the path */
|
||||
/* if the pointers match then only subtract the length of the path */
|
||||
if(r->path == r->realpath) {
|
||||
CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1;
|
||||
} else {
|
||||
|
@ -321,7 +321,7 @@ ZEND_VM_HANDLER(13, ZEND_BOOL_NOT, CONST|TMPVAR|CV, ANY)
|
||||
|
||||
SAVE_OPLINE();
|
||||
val = GET_OP1_ZVAL_PTR(BP_VAR_R);
|
||||
if (Z_TYPE_P(val) == IS_TRUE) {
|
||||
if (Z_TYPE_P(val) == IS_TRUE) {
|
||||
ZVAL_FALSE(EX_VAR(opline->result.var));
|
||||
} else if (EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
|
||||
ZVAL_TRUE(EX_VAR(opline->result.var));
|
||||
@ -1387,7 +1387,7 @@ ZEND_VM_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMP|VAR|UNUSED|CV, CONST|TMPVAR|CV)
|
||||
} else {
|
||||
ZEND_VM_C_GOTO(fetch_obj_r_no_object);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
|
||||
ZEND_VM_C_LABEL(fetch_obj_r_no_object):
|
||||
zend_error(E_NOTICE, "Trying to get property of non-object");
|
||||
@ -1501,7 +1501,7 @@ ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMPVAR|UNUSED|CV, CONST|TMPVAR|CV)
|
||||
} else {
|
||||
ZEND_VM_C_GOTO(fetch_obj_is_no_object);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
|
||||
ZEND_VM_C_LABEL(fetch_obj_is_no_object):
|
||||
ZVAL_NULL(EX_VAR(opline->result.var));
|
||||
@ -1920,9 +1920,9 @@ ZEND_VM_HELPER(zend_leave_helper, ANY, ANY)
|
||||
EG(current_execute_data) = EX(prev_execute_data);
|
||||
}
|
||||
zend_vm_stack_free_call_frame(execute_data);
|
||||
|
||||
|
||||
ZEND_VM_RETURN();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ZEND_VM_HANDLER(42, ZEND_JMP, ANY, ANY)
|
||||
@ -1942,13 +1942,13 @@ ZEND_VM_HANDLER(43, ZEND_JMPZ, CONST|TMPVAR|CV, ANY)
|
||||
SAVE_OPLINE();
|
||||
val = GET_OP1_ZVAL_PTR(BP_VAR_R);
|
||||
|
||||
if (Z_TYPE_P(val) == IS_TRUE) {
|
||||
if (Z_TYPE_P(val) == IS_TRUE) {
|
||||
ZEND_VM_SET_OPCODE(opline + 1);
|
||||
ZEND_VM_CONTINUE();
|
||||
} else if (EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
|
||||
if (OP1_TYPE == IS_CV) {
|
||||
ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
|
||||
} else {
|
||||
} else {
|
||||
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
|
||||
ZEND_VM_CONTINUE();
|
||||
}
|
||||
@ -1981,7 +1981,7 @@ ZEND_VM_HANDLER(44, ZEND_JMPNZ, CONST|TMPVAR|CV, ANY)
|
||||
} else if (EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
|
||||
if (OP1_TYPE == IS_CV) {
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
} else {
|
||||
} else {
|
||||
ZEND_VM_SET_OPCODE(opline + 1);
|
||||
ZEND_VM_CONTINUE();
|
||||
}
|
||||
@ -2014,7 +2014,7 @@ ZEND_VM_HANDLER(45, ZEND_JMPZNZ, CONST|TMPVAR|CV, ANY)
|
||||
} else if (EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
|
||||
if (OP1_TYPE == IS_CV) {
|
||||
ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
|
||||
} else {
|
||||
} else {
|
||||
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
|
||||
ZEND_VM_CONTINUE();
|
||||
}
|
||||
@ -2049,7 +2049,7 @@ ZEND_VM_HANDLER(46, ZEND_JMPZ_EX, CONST|TMPVAR|CV, ANY)
|
||||
ZVAL_FALSE(EX_VAR(opline->result.var));
|
||||
if (OP1_TYPE == IS_CV) {
|
||||
ZEND_VM_JMP(OP_JMP_ADDR(opline, opline->op2));
|
||||
} else {
|
||||
} else {
|
||||
ZEND_VM_SET_OPCODE(OP_JMP_ADDR(opline, opline->op2));
|
||||
ZEND_VM_CONTINUE();
|
||||
}
|
||||
@ -2087,7 +2087,7 @@ ZEND_VM_HANDLER(47, ZEND_JMPNZ_EX, CONST|TMPVAR|CV, ANY)
|
||||
ZVAL_FALSE(EX_VAR(opline->result.var));
|
||||
if (OP1_TYPE == IS_CV) {
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
} else {
|
||||
} else {
|
||||
ZEND_VM_SET_OPCODE(opline + 1);
|
||||
ZEND_VM_CONTINUE();
|
||||
}
|
||||
@ -2472,7 +2472,7 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, CONST|VAR, CONST|TMPVAR|UNUSE
|
||||
|
||||
EX(call) = zend_vm_stack_push_call_frame(ZEND_CALL_NESTED_FUNCTION,
|
||||
fbc, opline->extended_value, ce, object, EX(call));
|
||||
|
||||
|
||||
if (OP2_TYPE == IS_UNUSED) {
|
||||
EX(call)->return_value = NULL;
|
||||
}
|
||||
@ -2773,7 +2773,7 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
|
||||
} else {
|
||||
zend_vm_stack_free_args(call);
|
||||
}
|
||||
|
||||
|
||||
zend_vm_stack_free_call_frame(call);
|
||||
} else {
|
||||
ret = NULL;
|
||||
@ -2804,10 +2804,10 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
|
||||
/* See: ext/pdo_sqlite/tests/pdo_fetch_func_001.phpt */
|
||||
#if 1
|
||||
EG(scope) = object ? NULL : fbc->common.scope;
|
||||
#else
|
||||
#else
|
||||
EG(scope) = fbc->common.scope;
|
||||
#endif
|
||||
} else {
|
||||
} else {
|
||||
call->called_scope = EX(called_scope);
|
||||
Z_OBJ(call->This) = Z_OBJ(EX(This));
|
||||
}
|
||||
@ -2825,7 +2825,7 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
|
||||
p++;
|
||||
}
|
||||
if (UNEXPECTED(EG(exception) != NULL)) {
|
||||
EG(current_execute_data) = call->prev_execute_data;
|
||||
EG(current_execute_data) = call->prev_execute_data;
|
||||
zend_vm_stack_free_args(call);
|
||||
zend_vm_stack_free_call_frame(call);
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
@ -2849,7 +2849,7 @@ ZEND_VM_HANDLER(60, ZEND_DO_FCALL, ANY, ANY)
|
||||
} else {
|
||||
zend_execute_internal(call, ret);
|
||||
}
|
||||
EG(current_execute_data) = call->prev_execute_data;
|
||||
EG(current_execute_data) = call->prev_execute_data;
|
||||
zend_vm_stack_free_args(call);
|
||||
zend_vm_stack_free_call_frame(call);
|
||||
|
||||
@ -2933,7 +2933,7 @@ ZEND_VM_HANDLER(62, ZEND_RETURN, CONST|TMP|VAR|CV, ANY)
|
||||
if (!EX(return_value)) {
|
||||
FREE_OP1();
|
||||
} else {
|
||||
if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
|
||||
if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
|
||||
ZVAL_COPY_VALUE(EX(return_value), retval_ptr);
|
||||
if (OP1_TYPE == IS_CONST) {
|
||||
if (UNEXPECTED(Z_OPT_COPYABLE_P(EX(return_value)))) {
|
||||
@ -2962,7 +2962,7 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
|
||||
SAVE_OPLINE();
|
||||
|
||||
do {
|
||||
if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR ||
|
||||
if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR ||
|
||||
(OP1_TYPE == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) {
|
||||
/* Not supposed to happen, but we'll allow it */
|
||||
zend_error(E_NOTICE, "Only variable references should be returned by reference");
|
||||
@ -3398,7 +3398,7 @@ ZEND_VM_C_LABEL(send_again):
|
||||
EX(call)->func->common.function_name->val
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
if (Z_ISREF_P(arg)) {
|
||||
ZVAL_DUP(arg, Z_REFVAL_P(arg));
|
||||
} else {
|
||||
@ -3700,7 +3700,7 @@ ZEND_VM_HANDLER(164, ZEND_RECV_VARIADIC, ANY, ANY)
|
||||
ZEND_HASH_FILL_PACKED(Z_ARRVAL_P(params)) {
|
||||
param = EX_VAR_NUM(EX(func)->op_array.last_var + EX(func)->op_array.T);
|
||||
if (UNEXPECTED((EX(func)->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0)) {
|
||||
do {
|
||||
do {
|
||||
zend_verify_arg_type(EX(func), arg_num, param, NULL);
|
||||
if (Z_OPT_REFCOUNTED_P(param)) Z_ADDREF_P(param);
|
||||
ZEND_HASH_FILL_ADD(param);
|
||||
@ -3730,7 +3730,7 @@ ZEND_VM_HANDLER(52, ZEND_BOOL, CONST|TMPVAR|CV, ANY)
|
||||
|
||||
SAVE_OPLINE();
|
||||
val = GET_OP1_ZVAL_PTR(BP_VAR_R);
|
||||
if (Z_TYPE_P(val) == IS_TRUE) {
|
||||
if (Z_TYPE_P(val) == IS_TRUE) {
|
||||
ZVAL_TRUE(EX_VAR(opline->result.var));
|
||||
} else if (EXPECTED(Z_TYPE_P(val) <= IS_TRUE)) {
|
||||
ZVAL_FALSE(EX_VAR(opline->result.var));
|
||||
@ -4086,7 +4086,7 @@ ZEND_VM_C_LABEL(num_index):
|
||||
ZEND_VM_C_GOTO(num_index);
|
||||
}
|
||||
}
|
||||
ZEND_VM_C_LABEL(str_index):
|
||||
ZEND_VM_C_LABEL(str_index):
|
||||
zend_hash_update(Z_ARRVAL_P(EX_VAR(opline->result.var)), str, expr_ptr);
|
||||
break;
|
||||
case IS_NULL:
|
||||
@ -4555,7 +4555,7 @@ ZEND_VM_HANDLER(76, ZEND_UNSET_OBJ, VAR|UNUSED|CV, CONST|TMPVAR|CV)
|
||||
}
|
||||
offset = GET_OP2_ZVAL_PTR(BP_VAR_R);
|
||||
|
||||
do {
|
||||
do {
|
||||
if (OP1_TYPE != IS_UNUSED && UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT)) {
|
||||
if (Z_ISREF_P(container)) {
|
||||
container = Z_REFVAL_P(container);
|
||||
@ -4646,7 +4646,7 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
|
||||
}
|
||||
} else if (Z_REFCOUNTED_P(array_ref)) {
|
||||
if (OP1_TYPE == IS_CONST ||
|
||||
(OP1_TYPE == IS_CV &&
|
||||
(OP1_TYPE == IS_CV &&
|
||||
!Z_ISREF_P(array_ref) &&
|
||||
Z_REFCOUNT_P(array_ref) > 1) ||
|
||||
(OP1_TYPE == IS_VAR &&
|
||||
@ -4869,11 +4869,11 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
} else if (EXPECTED(Z_TYPE_P(array) == IS_OBJECT)) {
|
||||
zend_object_iterator *iter;
|
||||
|
||||
|
||||
if ((iter = zend_iterator_unwrap(array)) == NULL) {
|
||||
/* plain object */
|
||||
zend_object *zobj = Z_OBJ_P(array);
|
||||
|
||||
|
||||
fe_ht = Z_OBJPROP_P(array);
|
||||
ptr = (HashPointer*)EX_VAR((opline+1)->op1.var);
|
||||
pos = ptr->pos;
|
||||
@ -5030,7 +5030,7 @@ ZEND_VM_HANDLER(114, ZEND_ISSET_ISEMPTY_VAR, CONST|TMPVAR|CV, UNUSED|CONST|VAR)
|
||||
OP2_TYPE == IS_UNUSED &&
|
||||
(opline->extended_value & ZEND_QUICK_SET)) {
|
||||
value = EX_VAR(opline->op1.var);
|
||||
if (opline->extended_value & ZEND_ISSET) {
|
||||
if (opline->extended_value & ZEND_ISSET) {
|
||||
ZVAL_BOOL(EX_VAR(opline->result.var),
|
||||
Z_TYPE_P(value) > IS_NULL &&
|
||||
(!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL));
|
||||
@ -5078,7 +5078,7 @@ ZEND_VM_HANDLER(114, ZEND_ISSET_ISEMPTY_VAR, CONST|TMPVAR|CV, UNUSED|CONST|VAR)
|
||||
}
|
||||
FREE_OP1();
|
||||
|
||||
if (opline->extended_value & ZEND_ISSET) {
|
||||
if (opline->extended_value & ZEND_ISSET) {
|
||||
ZVAL_BOOL(EX_VAR(opline->result.var),
|
||||
value && Z_TYPE_P(value) > IS_NULL &&
|
||||
(!Z_ISREF_P(value) || Z_TYPE_P(Z_REFVAL_P(value)) != IS_NULL));
|
||||
@ -5190,7 +5190,7 @@ ZEND_VM_C_LABEL(num_index_prop):
|
||||
if ((opline->extended_value & ZEND_ISSET) ||
|
||||
Z_STRVAL_P(container)[offset->value.lval] != '0') {
|
||||
result = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((opline->extended_value & ZEND_ISSET) == 0) {
|
||||
@ -5269,7 +5269,7 @@ ZEND_VM_HANDLER(79, ZEND_EXIT, CONST|TMPVAR|UNUSED|CV, ANY)
|
||||
if (Z_TYPE_P(ptr) == IS_LONG) {
|
||||
EG(exit_status) = Z_LVAL_P(ptr);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
zend_print_variable(ptr);
|
||||
}
|
||||
@ -5675,7 +5675,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
|
||||
switch (opline->opcode) {
|
||||
case ZEND_DO_FCALL:
|
||||
level++;
|
||||
break;
|
||||
break;
|
||||
case ZEND_INIT_FCALL:
|
||||
case ZEND_INIT_FCALL_BY_NAME:
|
||||
case ZEND_INIT_NS_FCALL_BY_NAME:
|
||||
@ -5685,7 +5685,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
|
||||
case ZEND_NEW:
|
||||
if (level == 0) {
|
||||
ZEND_CALL_NUM_ARGS(call) = 0;
|
||||
do_exit = 1;
|
||||
do_exit = 1;
|
||||
}
|
||||
level--;
|
||||
break;
|
||||
@ -5698,7 +5698,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
|
||||
case ZEND_SEND_USER:
|
||||
if (level == 0) {
|
||||
ZEND_CALL_NUM_ARGS(call) = opline->op2.num;
|
||||
do_exit = 1;
|
||||
do_exit = 1;
|
||||
}
|
||||
break;
|
||||
case ZEND_SEND_ARRAY:
|
||||
@ -5720,7 +5720,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
|
||||
switch (opline->opcode) {
|
||||
case ZEND_DO_FCALL:
|
||||
level++;
|
||||
break;
|
||||
break;
|
||||
case ZEND_INIT_FCALL:
|
||||
case ZEND_INIT_FCALL_BY_NAME:
|
||||
case ZEND_INIT_NS_FCALL_BY_NAME:
|
||||
@ -5729,7 +5729,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
|
||||
case ZEND_INIT_STATIC_METHOD_CALL:
|
||||
case ZEND_NEW:
|
||||
if (level == 0) {
|
||||
do_exit = 1;
|
||||
do_exit = 1;
|
||||
}
|
||||
level--;
|
||||
break;
|
||||
@ -5787,7 +5787,7 @@ ZEND_VM_HANDLER(149, ZEND_HANDLE_EXCEPTION, ANY, ANY)
|
||||
|
||||
if (in_finally && Z_OBJ_P(fast_call)) {
|
||||
zend_exception_set_previous(EG(exception), Z_OBJ_P(fast_call));
|
||||
}
|
||||
}
|
||||
Z_OBJ_P(fast_call) = EG(exception);
|
||||
EG(exception) = NULL;
|
||||
fast_call->u2.lineno = (uint32_t)-1;
|
||||
@ -6066,7 +6066,7 @@ ZEND_VM_HANDLER(159, ZEND_DISCARD_EXCEPTION, ANY, ANY)
|
||||
{
|
||||
USE_OPLINE
|
||||
zval *fast_call = EX_VAR(opline->op1.var);
|
||||
|
||||
|
||||
/* check for delayed exception */
|
||||
if (Z_OBJ_P(fast_call) != NULL) {
|
||||
/* discard the previously thrown exception */
|
||||
@ -6161,11 +6161,11 @@ ZEND_VM_HANDLER(168, ZEND_BIND_GLOBAL, CV, CONST)
|
||||
|
||||
SAVE_OPLINE();
|
||||
varname = GET_OP2_ZVAL_PTR(BP_VAR_R);
|
||||
|
||||
|
||||
/* We store "hash slot index" + 1 (NULL is a mark of uninitialized cache slot) */
|
||||
idx = (uint32_t)(uintptr_t)CACHED_PTR(Z_CACHE_SLOT_P(varname)) - 1;
|
||||
if (EXPECTED(idx < EG(symbol_table).ht.nNumUsed)) {
|
||||
Bucket *p = EG(symbol_table).ht.arData + idx;
|
||||
Bucket *p = EG(symbol_table).ht.arData + idx;
|
||||
|
||||
if (EXPECTED(Z_TYPE(p->val) != IS_UNDEF) &&
|
||||
(EXPECTED(p->key == Z_STR_P(varname)) ||
|
||||
@ -6173,7 +6173,7 @@ ZEND_VM_HANDLER(168, ZEND_BIND_GLOBAL, CV, CONST)
|
||||
EXPECTED(p->key != NULL) &&
|
||||
EXPECTED(p->key->len == Z_STRLEN_P(varname)) &&
|
||||
EXPECTED(memcmp(p->key->val, Z_STRVAL_P(varname), Z_STRLEN_P(varname)) == 0)))) {
|
||||
|
||||
|
||||
value = &EG(symbol_table).ht.arData[idx].val;
|
||||
ZEND_VM_C_GOTO(check_indirect);
|
||||
}
|
||||
@ -6272,7 +6272,7 @@ ZEND_VM_HANDLER(123, ZEND_TYPE_CHECK, CONST|TMP|VAR|CV, ANY)
|
||||
case IS_OBJECT:
|
||||
if (Z_TYPE_P(value) == opline->extended_value) {
|
||||
zend_class_entry *ce = Z_OBJCE_P(value);
|
||||
if (ce->name->len == sizeof("__PHP_Incomplete_Class") - 1
|
||||
if (ce->name->len == sizeof("__PHP_Incomplete_Class") - 1
|
||||
&& !strncmp(ce->name->val, "__PHP_Incomplete_Class", ce->name->len)) {
|
||||
ZVAL_FALSE(EX_VAR(opline->result.var));
|
||||
} else {
|
||||
|
@ -220,7 +220,7 @@ PHP_FUNCTION(bcadd)
|
||||
if (zend_parse_parameters(argc, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (argc == 3) {
|
||||
scale = (int) (scale_param < 0 ? 0 : scale_param);
|
||||
}
|
||||
@ -231,11 +231,11 @@ PHP_FUNCTION(bcadd)
|
||||
php_str2num(&first, left);
|
||||
php_str2num(&second, right);
|
||||
bc_add (first, second, &result, scale);
|
||||
|
||||
|
||||
if (result->n_scale > scale) {
|
||||
result->n_scale = scale;
|
||||
}
|
||||
|
||||
|
||||
RETVAL_STR(bc_num2str(result));
|
||||
bc_free_num(&first);
|
||||
bc_free_num(&second);
|
||||
@ -257,7 +257,7 @@ PHP_FUNCTION(bcsub)
|
||||
if (zend_parse_parameters(argc, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (argc == 3) {
|
||||
scale = (int) ((int)scale_param < 0 ? 0 : scale_param);
|
||||
}
|
||||
@ -294,11 +294,11 @@ PHP_FUNCTION(bcmul)
|
||||
if (zend_parse_parameters(argc, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (argc == 3) {
|
||||
scale = (int) ((int)scale_param < 0 ? 0 : scale_param);
|
||||
}
|
||||
|
||||
|
||||
bc_init_num(&first);
|
||||
bc_init_num(&second);
|
||||
bc_init_num(&result);
|
||||
@ -331,11 +331,11 @@ PHP_FUNCTION(bcdiv)
|
||||
if (zend_parse_parameters(argc, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (argc == 3) {
|
||||
scale = (int) ((int)scale_param < 0 ? 0 : scale_param);
|
||||
}
|
||||
|
||||
|
||||
bc_init_num(&first);
|
||||
bc_init_num(&second);
|
||||
bc_init_num(&result);
|
||||
@ -372,13 +372,13 @@ PHP_FUNCTION(bcmod)
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ss", &left, &left_len, &right, &right_len) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
bc_init_num(&first);
|
||||
bc_init_num(&second);
|
||||
bc_init_num(&result);
|
||||
bc_str2num(&first, left, 0);
|
||||
bc_str2num(&second, right, 0);
|
||||
|
||||
|
||||
switch (bc_modulo(first, second, &result, 0)) {
|
||||
case 0:
|
||||
RETVAL_STR(bc_num2str(result));
|
||||
@ -387,7 +387,7 @@ PHP_FUNCTION(bcmod)
|
||||
php_error_docref(NULL, E_WARNING, "Division by zero");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
bc_free_num(&first);
|
||||
bc_free_num(&second);
|
||||
bc_free_num(&result);
|
||||
@ -427,7 +427,7 @@ PHP_FUNCTION(bcpowmod)
|
||||
} else {
|
||||
RETVAL_FALSE;
|
||||
}
|
||||
|
||||
|
||||
bc_free_num(&first);
|
||||
bc_free_num(&second);
|
||||
bc_free_num(&mod);
|
||||
@ -449,7 +449,7 @@ PHP_FUNCTION(bcpow)
|
||||
if (zend_parse_parameters(argc, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (argc == 3) {
|
||||
scale = (int) ((int)scale_param < 0 ? 0 : scale_param);
|
||||
}
|
||||
@ -486,14 +486,14 @@ PHP_FUNCTION(bcsqrt)
|
||||
if (zend_parse_parameters(argc, "s|l", &left, &left_len, &scale_param) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (argc == 2) {
|
||||
scale = (int) ((int)scale_param < 0 ? 0 : scale_param);
|
||||
}
|
||||
|
||||
bc_init_num(&result);
|
||||
php_str2num(&result, left);
|
||||
|
||||
|
||||
if (bc_sqrt (&result, scale) != 0) {
|
||||
if (result->n_scale > scale) {
|
||||
result->n_scale = scale;
|
||||
@ -521,7 +521,7 @@ PHP_FUNCTION(bccomp)
|
||||
if (zend_parse_parameters(argc, "ss|l", &left, &left_len, &right, &right_len, &scale_param) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (argc == 3) {
|
||||
scale = (int) ((int)scale_param < 0 ? 0 : scale_param);
|
||||
}
|
||||
@ -544,7 +544,7 @@ PHP_FUNCTION(bccomp)
|
||||
PHP_FUNCTION(bcscale)
|
||||
{
|
||||
zend_long new_scale;
|
||||
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS(), "l", &new_scale) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#ifndef _BCMATH_H_
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
@ -26,7 +26,7 @@
|
||||
Computer Science Department, 9062
|
||||
Western Washington University
|
||||
Bellingham, WA 98226-9062
|
||||
|
||||
|
||||
*************************************************************************/
|
||||
|
||||
#include <config.h>
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user