cvs: Zend / zend_API.c zend_builtin_functions.c zend_compile.c zend_constants.c zend_execute.c zend_execute_API.c zend_operators.c zend_operators.h

From: Date: Thu, 26 Sep 2002 18:39:28 +0000
Subject: cvs: Zend / zend_API.c zend_builtin_functions.c zend_compile.c zend_constants.c zend_execute.c zend_execute_API.c zend_operators.c zend_operators.h
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-453@lists.php.net to get a copy of this message
iliaa Thu Sep 26 14:39:28 2002 EDT Modified files: /Zend zend_API.c zend_builtin_functions.c zend_compile.c zend_constants.c zend_execute.c zend_execute_API.c zend_operators.c zend_operators.h Log: Fixed bug #18556

Index: Zend/zend_API.c diff -u Zend/zend_API.c:1.111 Zend/zend_API.c:1.112 --- Zend/zend_API.c:1.111 Tue Sep 10 11:33:44 2002 +++ Zend/zend_API.c Thu Sep 26 14:39:28 2002 @@ -1213,7 +1213,7 @@ zend_class_entry *register_class; char *lowercase_name = zend_strndup(class_entry->name, class_entry->name_length); - zend_str_tolower(lowercase_name, class_entry->name_length); + zend_str_tolower_nlc(lowercase_name, class_entry->name_length); class_entry->type = ZEND_INTERNAL_CLASS; class_entry->parent = NULL; @@ -1306,7 +1306,7 @@ return 1; lcname = estrndup(Z_STRVAL_P(callable), Z_STRLEN_P(callable)); - zend_str_tolower(lcname, Z_STRLEN_P(callable)); + zend_str_tolower_nlc(lcname, Z_STRLEN_P(callable)); if (zend_hash_exists(EG(function_table), lcname, Z_STRLEN_P(callable)+1)) retval = 1; efree(lcname); @@ -1342,7 +1342,7 @@ return 1; lcname = estrndup(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj)); - zend_str_tolower(lcname, Z_STRLEN_PP(obj)); + zend_str_tolower_nlc(lcname, Z_STRLEN_PP(obj)); zend_hash_find(EG(class_table), lcname, Z_STRLEN_PP(obj) + 1, (void**)&ce); efree(lcname); } else { @@ -1366,7 +1366,7 @@ if (ce) { lcname = estrndup(Z_STRVAL_PP(method), Z_STRLEN_PP(method)); - zend_str_tolower(lcname, Z_STRLEN_PP(method)); + zend_str_tolower_nlc(lcname, Z_STRLEN_PP(method)); if (zend_hash_exists(&ce->function_table, lcname, Z_STRLEN_PP(method)+1)) retval = 1; efree(lcname); Index: Zend/zend_builtin_functions.c diff -u Zend/zend_builtin_functions.c:1.121 Zend/zend_builtin_functions.c:1.122 --- Zend/zend_builtin_functions.c:1.121 Tue Sep 10 11:33:45 2002 +++ Zend/zend_builtin_functions.c Thu Sep 26 14:39:28 2002 @@ -528,7 +528,7 @@ ce = Z_OBJCE_PP(arg); else if (Z_TYPE_PP(arg) == IS_STRING) { SEPARATE_ZVAL(arg); - zend_str_tolower(Z_STRVAL_PP(arg), Z_STRLEN_PP(arg)); + zend_str_tolower_nlc(Z_STRVAL_PP(arg), Z_STRLEN_PP(arg)); zend_hash_find(EG(class_table), Z_STRVAL_PP(arg), Z_STRLEN_PP(arg)+1, (void **)&ce); } @@ -556,7 +556,7 @@ convert_to_string_ex(class_name); lcname = estrndup(Z_STRVAL_PP(class_name), Z_STRLEN_PP(class_name)); - zend_str_tolower(lcname, Z_STRLEN_PP(class_name)); + zend_str_tolower_nlc(lcname, Z_STRLEN_PP(class_name)); if (only_subclass) ce = Z_OBJCE_PP(obj)->parent; @@ -605,7 +605,7 @@ convert_to_string_ex(class_name); lcname = estrndup((*class_name)->value.str.val, (*class_name)->value.str.len); - zend_str_tolower(lcname, (*class_name)->value.str.len); + zend_str_tolower_nlc(lcname, (*class_name)->value.str.len); if (zend_hash_find(EG(class_table), lcname, (*class_name)->value.str.len+1, (void **)&ce)==FAILURE) { efree(lcname); @@ -664,7 +664,7 @@ ce = Z_OBJCE_PP(class); else if (Z_TYPE_PP(class) == IS_STRING) { SEPARATE_ZVAL(class); - zend_str_tolower(Z_STRVAL_PP(class), Z_STRLEN_PP(class)); + zend_str_tolower_nlc(Z_STRVAL_PP(class), Z_STRLEN_PP(class)); zend_hash_find(EG(class_table), Z_STRVAL_PP(class), Z_STRLEN_PP(class)+1, (void **)&ce); } @@ -701,7 +701,7 @@ } convert_to_string_ex(method_name); lcname = estrndup((*method_name)->value.str.val, (*method_name)->value.str.len); - zend_str_tolower(lcname, (*method_name)->value.str.len); + zend_str_tolower_nlc(lcname, (*method_name)->value.str.len); if (zend_hash_exists(&Z_OBJCE_PP(klass)->function_table, lcname, (*method_name)->value.str.len+1)) { efree(lcname); RETURN_TRUE; @@ -725,7 +725,7 @@ } convert_to_string_ex(class_name); lcname = estrndup((*class_name)->value.str.val, (*class_name)->value.str.len); - zend_str_tolower(lcname, (*class_name)->value.str.len); + zend_str_tolower_nlc(lcname, (*class_name)->value.str.len); if (zend_hash_exists(EG(class_table), lcname, (*class_name)->value.str.len+1)) { efree(lcname); RETURN_TRUE; @@ -751,7 +751,7 @@ } convert_to_string_ex(function_name); lcname = estrndup((*function_name)->value.str.val, (*function_name)->value.str.len); - zend_str_tolower(lcname, (*function_name)->value.str.len); + zend_str_tolower_nlc(lcname, (*function_name)->value.str.len); retval = (zend_hash_find(EG(function_table), lcname, (*function_name)->value.str.len+1, (void **)&func) == SUCCESS); efree(lcname); Index: Zend/zend_compile.c diff -u Zend/zend_compile.c:1.236 Zend/zend_compile.c:1.237 --- Zend/zend_compile.c:1.236 Tue Aug 20 10:26:31 2002 +++ Zend/zend_compile.c Thu Sep 26 14:39:28 2002 @@ -739,7 +739,7 @@ int function_begin_line = function_token->u.opline_num; function_token->u.op_array = CG(active_op_array); - zend_str_tolower(name, name_len); + zend_str_tolower_nlc(name, name_len); init_op_array(&op_array, ZEND_USER_FUNCTION, INITIAL_OP_ARRAY_SIZE TSRMLS_CC); @@ -836,7 +836,7 @@ { zend_function *function; - zend_str_tolower(function_name->u.constant.value.str.val, function_name->u.constant.value.str.len); + zend_str_tolower_nlc(function_name->u.constant.value.str.val, function_name->u.constant.value.str.len); if (zend_hash_find(CG(function_table), function_name->u.constant.value.str.val, function_name->u.constant.value.str.len+1, (void **) &function)==FAILURE) { znode tmp = *function_name; @@ -900,7 +900,7 @@ zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC); opline->opcode = ZEND_INIT_FCALL_BY_NAME; - zend_str_tolower(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len); + zend_str_tolower_nlc(class_name->u.constant.value.str.val, class_name->u.constant.value.str.len); if ((class_name->u.constant.value.str.len == sizeof("parent")-1) && !memcmp(class_name->u.constant.value.str.val, "parent", sizeof("parent")-1)) { if (!CG(active_ce_parent_class_name).value.str.val) { @@ -1572,7 +1572,7 @@ *CG(class_entry).refcount = 1; CG(class_entry).constants_updated = 0; - zend_str_tolower(CG(class_entry).name, CG(class_entry).name_length); + zend_str_tolower_nlc(CG(class_entry).name, CG(class_entry).name_length); zend_hash_init(&CG(class_entry).function_table, 10, NULL, ZEND_FUNCTION_DTOR, 0); zend_hash_init(&CG(class_entry).default_properties, 10, NULL, ZVAL_PTR_DTOR, 0); @@ -1587,7 +1587,7 @@ zend_function tmp_zend_function; zval *tmp; - zend_str_tolower(parent_class_name->u.constant.value.str.val, parent_class_name->u.constant.value.str.len); + zend_str_tolower_nlc(parent_class_name->u.constant.value.str.val, parent_class_name->u.constant.value.str.len); CG(active_ce_parent_class_name).value.str.val = estrndup(parent_class_name->u.constant.value.str.val, parent_class_name->u.constant.value.str.len); CG(active_ce_parent_class_name).value.str.len = parent_class_name->u.constant.value.str.len; Index: Zend/zend_constants.c diff -u Zend/zend_constants.c:1.40 Zend/zend_constants.c:1.41 --- Zend/zend_constants.c:1.40 Sat Jun 22 10:11:43 2002 +++ Zend/zend_constants.c Thu Sep 26 14:39:28 2002 @@ -222,7 +222,7 @@ if (zend_hash_find(EG(zend_constants), name, name_len+1, (void **) &c) == FAILURE) { lookup_name = do_alloca(name_len+1); memcpy(lookup_name, name, name_len+1); - zend_str_tolower(lookup_name, name_len); + zend_str_tolower_nlc(lookup_name, name_len); if (zend_hash_find(EG(zend_constants), lookup_name, name_len+1, (void **) &c)==SUCCESS) { if ((c->flags & CONST_CS) && memcmp(c->name, name, name_len)!=0) { @@ -257,7 +257,7 @@ memcpy(lowercase_name, c->name, c->name_len); if (!(c->flags & CONST_CS)) { - zend_str_tolower(lowercase_name, c->name_len); + zend_str_tolower_nlc(lowercase_name, c->name_len); } if (zend_hash_add(EG(zend_constants), lowercase_name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) { Index: Zend/zend_execute.c diff -u Zend/zend_execute.c:1.309 Zend/zend_execute.c:1.310 --- Zend/zend_execute.c:1.309 Mon Sep 9 13:28:32 2002 +++ Zend/zend_execute.c Thu Sep 26 14:39:28 2002 @@ -1504,7 +1504,7 @@ zval_copy_ctor(&tmp); convert_to_string(&tmp); function_name = &tmp; - zend_str_tolower(tmp.value.str.val, tmp.value.str.len); + zend_str_tolower_nlc(tmp.value.str.val, tmp.value.str.len); EX(ce) = NULL; if (EX(opline)->op1.op_type != IS_UNUSED) { if (EX(opline)->op1.op_type==IS_CONST) { /* used for class_name::function() */ @@ -1952,7 +1952,7 @@ class_name = *tmp; zval_copy_ctor(&class_name); convert_to_string(&class_name); - zend_str_tolower(class_name.value.str.val, class_name.value.str.len); + zend_str_tolower_nlc(class_name.value.str.val, class_name.value.str.len); if (zend_hash_find(EG(class_table), class_name.value.str.val, class_name.value.str.len+1, (void **) &ce)==FAILURE) { zend_error(E_ERROR, "Cannot instantiate non-existent class: %s", class_name.value.str.val); Index: Zend/zend_execute_API.c diff -u Zend/zend_execute_API.c:1.151 Zend/zend_execute_API.c:1.152 --- Zend/zend_execute_API.c:1.151 Thu Sep 19 11:54:10 2002 +++ Zend/zend_execute_API.c Thu Sep 26 14:39:28 2002 @@ -456,7 +456,7 @@ int found; lc_class = estrndup(Z_STRVAL_PP(object_pp), Z_STRLEN_PP(object_pp)); - zend_str_tolower(lc_class, Z_STRLEN_PP(object_pp)); + zend_str_tolower_nlc(lc_class, Z_STRLEN_PP(object_pp)); found = zend_hash_find(EG(class_table), lc_class, Z_STRLEN_PP(object_pp) + 1, (void **) &ce); efree(lc_class); if (found == FAILURE) @@ -475,7 +475,7 @@ function_name_copy = *function_name; zval_copy_ctor(&function_name_copy); - zend_str_tolower(function_name_copy.value.str.val, function_name_copy.value.str.len); + zend_str_tolower_nlc(function_name_copy.value.str.val, function_name_copy.value.str.len); original_function_state_ptr = EG(function_state_ptr); if (zend_hash_find(function_table, function_name_copy.value.str.val, function_name_copy.value.str.len+1, (void **) &EX(function_state).function)==FAILURE) { Index: Zend/zend_operators.c diff -u Zend/zend_operators.c:1.124 Zend/zend_operators.c:1.125 --- Zend/zend_operators.c:1.124 Sat Aug 31 16:53:48 2002 +++ Zend/zend_operators.c Thu Sep 26 14:39:28 2002 @@ -1565,6 +1565,17 @@ } } +ZEND_API void zend_str_tolower_nlc(char *str, unsigned int length) +{ + register char *p=str, *end=p+length; + + while (p<end) { + if (*p >= 'A' && *p <= 'Z') { + *p = (*p)+32; + } + p++; + } +} ZEND_API int zend_binary_strcmp(char *s1, uint len1, char *s2, uint len2) { Index: Zend/zend_operators.h diff -u Zend/zend_operators.h:1.51 Zend/zend_operators.h:1.52 --- Zend/zend_operators.h:1.51 Tue Apr 30 10:47:29 2002 +++ Zend/zend_operators.h Thu Sep 26 14:39:28 2002 @@ -169,6 +169,7 @@ ZEND_API int string_compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC); ZEND_API void zend_str_tolower(char *str, unsigned int length); +ZEND_API void zend_str_tolower_nlc(char *str, unsigned int length); ZEND_API int zend_binary_zval_strcmp(zval *s1, zval *s2); ZEND_API int zend_binary_zval_strncmp(zval *s1, zval *s2, zval *s3); ZEND_API int zend_binary_zval_strcasecmp(zval *s1, zval *s2);
« previous php.zend-engine.cvs (#453) next »