]> granicus.if.org Git - php/commitdiff
- Removed:
authorFelipe Pena <felipe@php.net>
Fri, 27 Mar 2009 19:28:26 +0000 (19:28 +0000)
committerFelipe Pena <felipe@php.net>
Fri, 27 Mar 2009 19:28:26 +0000 (19:28 +0000)
     - UG(unicode) checks
- Changed:
     - ZEND_STR_TYPE -> IS_UNICODE
     - convert_to_text -> convert_to_unicode

13 files changed:
ext/mysql/php_mysql.c
ext/mysqli/mysqli.c
ext/mysqli/mysqli_api.c
ext/mysqli/mysqli_nonapi.c
ext/mysqlnd/mysqlnd.c
ext/mysqlnd/mysqlnd_debug.c
ext/mysqlnd/mysqlnd_palloc.c
ext/mysqlnd/mysqlnd_ps_codec.c
ext/mysqlnd/mysqlnd_result.c
ext/mysqlnd/mysqlnd_result_meta.c
ext/mysqlnd/mysqlnd_statistics.c
ext/mysqlnd/php_mysqlnd.c
ext/pcre/php_pcre.c

index 087d15c1d36b1a7193de547bb2b52e092d973f8e..598ab5a75401827c3cb638e0517e7d8f989dbe68 100644 (file)
@@ -625,6 +625,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
        int hashed_details_length, port = MYSQL_PORT;
        long client_flags = 0;
        php_mysql_conn *mysql=NULL;
+       char *encoding = mysql_character_set_name(mysql->conn);
 #if MYSQL_VERSION_ID <= 32230
        void (*handler) (int);
 #endif
@@ -757,9 +758,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
 #else
                        mysql->conn = mysql_init(persistent);
 #endif
-                       if (UG(unicode)) {
-                               mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, "utf8");
-                       }
+                       mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, "utf8");
 
                        if (connect_timeout != -1) {
                                mysql_options(mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
@@ -787,17 +786,14 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
                        mysql_options(mysql->conn, MYSQL_OPT_LOCAL_INFILE, (char *)&MySG(allow_local_infile));
 
 #if !defined(MYSQL_USE_MYSQLND)
-                       if (UG(unicode)) {
 #ifdef MYSQL_HAS_SET_CHARSET
-                               mysql_set_character_set(mysql->conn, "utf8");
+                       mysql_set_character_set(mysql->conn, "utf8");
 #else
-                               char *encoding = mysql_character_set_name(mysql->conn);
-                               if (strcasecmp((char*)encoding, "utf8")) {
-                                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't connect in Unicode mode. Client library was compiled with default charset %s", encoding);
-                                       MYSQL_DO_CONNECT_RETURN_FALSE();
-                               }       
+                       if (strcasecmp((char*)encoding, "utf8")) {
+                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't connect in Unicode mode. Client library was compiled with default charset %s", encoding);
+                               MYSQL_DO_CONNECT_RETURN_FALSE();
+                       }       
 #endif
-                       }
 #endif
 
                        /* hash it up */
@@ -827,9 +823,7 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
 #endif 
                        if (mysql_ping(mysql->conn)) {
                                if (mysql_errno(mysql->conn) == 2006) {
-                                       if (UG(unicode)) {
-                                               mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, "utf8");
-                                       }
+                                       mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, "utf8");
 #ifndef MYSQL_USE_MYSQLND
                                        if (mysql_real_connect(mysql->conn, host, user, passwd, NULL, port, socket, client_flags)==NULL)
 #else
@@ -843,17 +837,14 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
                                                MYSQL_DO_CONNECT_RETURN_FALSE();
                                        }
 #if !defined(MYSQL_USE_MYSQLND)
-                                       if (UG(unicode)) {
 #ifdef MYSQL_HAS_SET_CHARSET
-                                               mysql_set_character_set(mysql->conn, "utf8");
+                                       mysql_set_character_set(mysql->conn, "utf8");
 #else
-                                               char *encoding = mysql_character_set_name(mysql->conn);
-                                               if (strcasecmp((char*)encoding, "utf8")) {
-                                                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't connect in Unicode mode. Client library was compiled with default charset %s", encoding);
-                                                       MYSQL_DO_CONNECT_RETURN_FALSE();
-                                               }       
+                                       if (strcasecmp((char*)encoding, "utf8")) {
+                                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't connect in Unicode mode. Client library was compiled with default charset %s", encoding);
+                                               MYSQL_DO_CONNECT_RETURN_FALSE();
+                                       }       
 #endif
-                                       }
 #endif
                                        mysql_options(mysql->conn, MYSQL_OPT_LOCAL_INFILE, (char *)&MySG(allow_local_infile));
                                }
@@ -913,9 +904,8 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
                mysql->conn = mysql_init(persistent);
 #endif
 
-               if (UG(unicode)) {
-                       mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, "utf8");
-               }
+               mysql_options(mysql->conn, MYSQL_SET_CHARSET_NAME, "utf8");
+
                if (connect_timeout != -1) {
                        mysql_options(mysql->conn, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout);
                }
@@ -946,17 +936,14 @@ static void php_mysql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
                }
 
 #if !defined(MYSQL_USE_MYSQLND)
-               if (UG(unicode)) {
 #ifdef MYSQL_HAS_SET_CHARSET
-                       mysql_set_character_set(mysql->conn, "utf8");
+               mysql_set_character_set(mysql->conn, "utf8");
 #else
-                       char *encoding = mysql_character_set_name(mysql->conn);
-                       if (strcasecmp((char*)encoding, "utf8")) {
-                               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't connect in Unicode mode. Client library was compiled with default charset %s", encoding);
-                               MYSQL_DO_CONNECT_RETURN_FALSE();
-                       }       
+               if (strcasecmp((char*)encoding, "utf8")) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't connect in Unicode mode. Client library was compiled with default charset %s", encoding);
+                       MYSQL_DO_CONNECT_RETURN_FALSE();
+               }       
 #endif
-               }
 #endif
                mysql_options(mysql->conn, MYSQL_OPT_LOCAL_INFILE, (char *)&MySG(allow_local_infile));
 
@@ -1284,7 +1271,7 @@ PHP_FUNCTION(mysql_set_charset)
        ZEND_FETCH_RESOURCE2(mysql, php_mysql_conn *, &mysql_link, id, "MySQL-Link", le_link, le_plink);
 
        /* Only allow the use of this function with unicode.semantics=On */
-       if (UG(unicode) && (csname_len != 4  || strncasecmp(csname, "utf8", 4))) {
+       if (csname_len != 4  || strncasecmp(csname, "utf8", 4)) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Character set %s is not supported when running PHP with unicode.semantics=On.", csname);
                RETURN_FALSE;
        }
@@ -2037,7 +2024,7 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type,
 
                        MAKE_STD_ZVAL(data);
 
-                       if (UG(unicode) && !IS_BINARY_DATA(mysql_field)) {
+                       if (!IS_BINARY_DATA(mysql_field)) {
                                UChar *ustr;
                                int ulen;
 
@@ -2051,19 +2038,16 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type,
                                add_index_zval(return_value, i, data);
                        }
                        if (result_type & MYSQL_ASSOC) {
+                               UChar *ustr;
+                               int ulen;
+                               
                                if (result_type & MYSQL_NUM) {
                                        Z_ADDREF_P(data);
                                }
-                               if (UG(unicode)) {
-                                       UChar *ustr;
-                                       int ulen;
 
-                                       zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, mysql_field->name, strlen(mysql_field->name) TSRMLS_CC);
-                                       add_u_assoc_zval_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen + 1, data);
-                                       efree(ustr);
-                               } else {
-                                       add_assoc_zval(return_value, mysql_field->name, data);
-                               }
+                               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, mysql_field->name, strlen(mysql_field->name) TSRMLS_CC);
+                               add_u_assoc_zval_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen + 1, data);
+                               efree(ustr);
                        }
                } else {
                        /* NULL value. */
@@ -2072,16 +2056,12 @@ static void php_mysql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type,
                        }
 
                        if (result_type & MYSQL_ASSOC) {
-                               if (UG(unicode)) {
-                                       UChar *ustr;
-                                       int ulen;
+                               UChar *ustr;
+                               int ulen;
 
-                                       zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, mysql_field->name, strlen(mysql_field->name) TSRMLS_CC);
-                                       add_u_assoc_null_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen + 1);
-                                       efree(ustr);
-                               } else {
-                                       add_assoc_null(return_value, mysql_field->name);
-                               }
+                               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, mysql_field->name, strlen(mysql_field->name) TSRMLS_CC);
+                               add_u_assoc_null_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen + 1);
+                               efree(ustr);
                        }
                }
        }
index dc9317d7eebb9cf8d90910836117597f421d5466..d49529c35e7c046534b4b99e7bd865691859df64 100644 (file)
@@ -95,7 +95,7 @@ static int le_pmysqli;
 void php_mysqli_dtor_p_elements(void *data)
 {
        MYSQL *mysql = (MYSQL *) data;
-       TSRMLS_FETCH();
+
        mysqli_close(mysql, MYSQLI_CLOSE_IMPLICIT);
 }
 
@@ -338,12 +338,12 @@ zval *mysqli_read_property(zval *object, zval *member, int type TSRMLS_DC)
        if (member->type != IS_STRING && member->type != IS_UNICODE) {
                tmp_member = *member;
                zval_copy_ctor(&tmp_member);
-               convert_to_text(&tmp_member);
+               convert_to_unicode(&tmp_member);
                member = &tmp_member;
        }
 
        if (obj->prop_handler != NULL) {
-               ret = zend_u_hash_find(obj->prop_handler, ZEND_STR_TYPE, Z_UNIVAL_P(member), Z_UNILEN_P(member)+1, (void **) &hnd);
+               ret = zend_u_hash_find(obj->prop_handler, IS_UNICODE, Z_UNIVAL_P(member), Z_UNILEN_P(member)+1, (void **) &hnd);
        }
 
        if (ret == SUCCESS) {
@@ -427,7 +427,7 @@ static int mysqli_object_has_property(zval *object, zval *member, int has_set_ex
        if (member->type != IS_STRING && member->type != IS_UNICODE) {
                tmp_member = *member;
                zval_copy_ctor(&tmp_member);
-               convert_to_text(&tmp_member);
+               convert_to_unicode(&tmp_member);
                member = &tmp_member;
        }
 
@@ -491,9 +491,7 @@ HashTable * mysqli_object_get_debug_info(zval *object, int *is_temp TSRMLS_DC)
                        zend_ascii_hash_add(retval, entry->name, entry->name_len + 1, &value, sizeof(zval *), NULL);
                }
                zend_hash_move_forward_ex(props, &pos);
-               if (UG(unicode)) {
-                       zval_dtor(&member);
-               }
+               zval_dtor(&member);
        }
 
        *is_temp = 1;
@@ -522,7 +520,7 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry *class_
                mysqli_base_class = mysqli_base_class->parent;
        }
 
-       zend_u_hash_find(&classes, ZEND_STR_TYPE, mysqli_base_class->name, mysqli_base_class->name_length + 1, 
+       zend_u_hash_find(&classes, IS_UNICODE, mysqli_base_class->name, mysqli_base_class->name_length + 1, 
                                        (void **) &intern->prop_handler);
 
        zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
@@ -695,7 +693,7 @@ PHP_MINIT_FUNCTION(mysqli)
        zend_u_hash_init(&mysqli_driver_properties, 0, NULL, NULL, 1, 1);
        MYSQLI_ADD_PROPERTIES(&mysqli_driver_properties, mysqli_driver_property_entries);
        MYSQLI_ADD_PROPERTIES_INFO(ce, mysqli_driver_property_info_entries);
-       zend_u_hash_add(&classes, ZEND_STR_TYPE, ce->name, ce->name_length+1, &mysqli_driver_properties, sizeof(mysqli_driver_properties), NULL);
+       zend_u_hash_add(&classes, IS_UNICODE, ce->name, ce->name_length+1, &mysqli_driver_properties, sizeof(mysqli_driver_properties), NULL);
        ce->ce_flags |= ZEND_ACC_FINAL_CLASS;
 
        REGISTER_MYSQLI_CLASS_ENTRY("mysqli", mysqli_link_class_entry, mysqli_link_methods);
@@ -703,7 +701,7 @@ PHP_MINIT_FUNCTION(mysqli)
        zend_u_hash_init(&mysqli_link_properties, 0, NULL, NULL, 1, 1);
        MYSQLI_ADD_PROPERTIES(&mysqli_link_properties, mysqli_link_property_entries);
        MYSQLI_ADD_PROPERTIES_INFO(ce, mysqli_link_property_info_entries);
-       zend_u_hash_add(&classes, ZEND_STR_TYPE, ce->name, ce->name_length+1, &mysqli_link_properties, sizeof(mysqli_link_properties), NULL);
+       zend_u_hash_add(&classes, IS_UNICODE, ce->name, ce->name_length+1, &mysqli_link_properties, sizeof(mysqli_link_properties), NULL);
 
        REGISTER_MYSQLI_CLASS_ENTRY("mysqli_warning", mysqli_warning_class_entry, mysqli_warning_methods);
        ce = mysqli_warning_class_entry;
@@ -711,21 +709,21 @@ PHP_MINIT_FUNCTION(mysqli)
        zend_u_hash_init(&mysqli_warning_properties, 0, NULL, NULL, 1, 1);
        MYSQLI_ADD_PROPERTIES(&mysqli_warning_properties, mysqli_warning_property_entries);
        MYSQLI_ADD_PROPERTIES_INFO(ce, mysqli_warning_property_info_entries);
-       zend_u_hash_add(&classes, ZEND_STR_TYPE, ce->name, ce->name_length+1, &mysqli_warning_properties, sizeof(mysqli_warning_properties), NULL);
+       zend_u_hash_add(&classes, IS_UNICODE, ce->name, ce->name_length+1, &mysqli_warning_properties, sizeof(mysqli_warning_properties), NULL);
 
        REGISTER_MYSQLI_CLASS_ENTRY("mysqli_result", mysqli_result_class_entry, mysqli_result_methods);
        ce = mysqli_result_class_entry;
        zend_u_hash_init(&mysqli_result_properties, 0, NULL, NULL, 1, 1);
        MYSQLI_ADD_PROPERTIES(&mysqli_result_properties, mysqli_result_property_entries);
        MYSQLI_ADD_PROPERTIES_INFO(ce, mysqli_result_property_info_entries);
-       zend_u_hash_add(&classes, ZEND_STR_TYPE, ce->name, ce->name_length+1, &mysqli_result_properties, sizeof(mysqli_result_properties), NULL);
+       zend_u_hash_add(&classes, IS_UNICODE, ce->name, ce->name_length+1, &mysqli_result_properties, sizeof(mysqli_result_properties), NULL);
 
        REGISTER_MYSQLI_CLASS_ENTRY("mysqli_stmt", mysqli_stmt_class_entry, mysqli_stmt_methods);
        ce = mysqli_stmt_class_entry;
        zend_u_hash_init(&mysqli_stmt_properties, 0, NULL, NULL, 1, 1);
        MYSQLI_ADD_PROPERTIES(&mysqli_stmt_properties, mysqli_stmt_property_entries);
        MYSQLI_ADD_PROPERTIES_INFO(ce, mysqli_stmt_property_info_entries);
-       zend_u_hash_add(&classes, ZEND_STR_TYPE, ce->name, ce->name_length+1, &mysqli_stmt_properties, sizeof(mysqli_stmt_properties), NULL);
+       zend_u_hash_add(&classes, IS_UNICODE, ce->name, ce->name_length+1, &mysqli_stmt_properties, sizeof(mysqli_stmt_properties), NULL);
 
 
        /* mysqli_options */
@@ -1218,7 +1216,7 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
                        zval *res;
 
                        MAKE_STD_ZVAL(res);
-                       if (UG(unicode) && !IS_BINARY_DATA(fields[i])) {
+                       if (!IS_BINARY_DATA(fields[i])) {
                                UChar *ustr;
                                int ulen;
 
@@ -1232,35 +1230,28 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
                                add_index_zval(return_value, i, res);
                        }
                        if (fetchtype & MYSQLI_ASSOC) {
+                               UChar *ustr;
+                               int ulen;
+
                                if (fetchtype & MYSQLI_NUM) {
                                        Z_ADDREF_P(res);
                                }
-                               if (UG(unicode)) {
-                                       UChar *ustr;
-                                       int ulen;
 
-                                       zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, fields[i].name, strlen(fields[i].name) TSRMLS_CC);
-                                       add_u_assoc_zval_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen + 1, res);
-                                       efree(ustr);
-                               } else {
-                                       add_assoc_zval(return_value, fields[i].name, res);
-                               }
+                               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, fields[i].name, strlen(fields[i].name) TSRMLS_CC);
+                               add_u_assoc_zval_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen + 1, res);
+                               efree(ustr);
                        }
                } else {
                        if (fetchtype & MYSQLI_NUM) {
                                add_index_null(return_value, i);
                        }
                        if (fetchtype & MYSQLI_ASSOC) {
-                               if (UG(unicode)) {
-                                       UChar *ustr;
-                                       int ulen;
+                               UChar *ustr;
+                               int ulen;
 
-                                       zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, fields[i].name, strlen(fields[i].name) TSRMLS_CC);
-                                       add_u_assoc_null(return_value, IS_UNICODE, ZSTR(ustr));
-                                       efree(ustr);
-                               } else {
-                                       add_assoc_null(return_value, fields[i].name);
-                               }
+                               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, fields[i].name, strlen(fields[i].name) TSRMLS_CC);
+                               add_u_assoc_null(return_value, IS_UNICODE, ZSTR(ustr));
+                               efree(ustr);
                        }
                }
        }
index 4d37c0c6511e650d4b16bc7397e66ef784f15a24..2737320f601f25cac221a3d0a54dbe3815edc73b 100644 (file)
@@ -529,9 +529,7 @@ PHP_FUNCTION(mysqli_change_user)
        }
 
        /* Change user resets the charset in the server, change it back */
-       if (UG(unicode)) {
-               mysql_set_character_set(mysql->mysql, "utf8");
-       }
+       mysql_set_character_set(mysql->mysql, "utf8");
 
        RETURN_TRUE;
 }
@@ -753,7 +751,7 @@ PHP_FUNCTION(mysqli_stmt_execute)
                                zval *the_var = copies && copies[i]? copies[i]:stmt->param.vars[i];
                                switch (stmt->stmt->params[i].buffer_type) {
                                        case MYSQL_TYPE_VAR_STRING:
-                                               if (UG(unicode) && Z_TYPE_P(the_var) == IS_UNICODE) {
+                                               if (Z_TYPE_P(the_var) == IS_UNICODE) {
                                                        if (the_var == stmt->param.vars[i]) { 
                                                                php_mysqli_stmt_copy_it(&copies, stmt->param.vars[i], stmt->param.var_cnt, i);
                                                                the_var = copies[i];
@@ -905,9 +903,7 @@ void mysqli_stmt_fetch_libmysql(INTERNAL_FUNCTION_PARAMETERS)
                                                                tmp[10]= '\0';
                                                                /* unsigned int > INT_MAX is 10 digits - ALWAYS */
                                                                ZVAL_UTF8_STRINGL(stmt->result.vars[i], tmp, 10, 0);
-                                                               if (UG(unicode)) {
-                                                                       efree(tmp);
-                                                               }
+                                                               efree(tmp);
                                                                break;
                                                        }
 #endif
@@ -1478,7 +1474,7 @@ PHP_FUNCTION(mysqli_set_local_infile_handler)
 
        MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
 
-       if (UG(unicode) && Z_TYPE_P(callback_func) != IS_ARRAY && Z_TYPE_P(callback_func) != IS_OBJECT) {
+       if (Z_TYPE_P(callback_func) != IS_ARRAY && Z_TYPE_P(callback_func) != IS_OBJECT) {
                convert_to_string(callback_func);
        }
 
index b30957c5a4e3103d966cb40c827430cddb0eaaf7..1237458d2783d3633755d2804846c39fe43ff725 100644 (file)
@@ -227,10 +227,7 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
                new_connection = TRUE;
        }
 
-       if (UG(unicode)) {
-               mysql_options(mysql->mysql, MYSQL_SET_CHARSET_NAME, "utf8");
-       }
-
+       mysql_options(mysql->mysql, MYSQL_SET_CHARSET_NAME, "utf8");
 
 #ifdef HAVE_EMBEDDED_MYSQLI
        if (hostname_len) {
@@ -260,9 +257,7 @@ void mysqli_common_connect(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_real_conne
        }
 
        /* when PHP runs in unicode, set default character set to utf8 */
-       if (UG(unicode)) {
-               mysql->conv = UG(utf8_conv);
-       }
+       mysql->conv = UG(utf8_conv);
 
        /* clear error */
        php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql) TSRMLS_CC);
@@ -947,7 +942,7 @@ PHP_FUNCTION(mysqli_set_charset)
 
        /* check unicode modus */
        /* todo: we need also to support UCS2. This will not work when using SET NAMES */
-       if (UG(unicode) && (csname_len != 4  || strncasecmp(cs_name, "utf8", 4))) {
+       if (csname_len != 4  || strncasecmp(cs_name, "utf8", 4)) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Character set %s is not supported when running PHP with unicode.semantics=On.", cs_name);
                RETURN_FALSE;
        }
@@ -1003,24 +998,14 @@ PHP_FUNCTION(mysqli_get_charset)
        state = 1;      /* all charsets are compiled in */
 #endif
 
-       if (UG(unicode)) {
-               add_property_utf8_string(return_value, "charset", (name) ? (char *)name : "", 1);
-               add_property_utf8_string(return_value, "collation", (collation) ? (char *)collation : "", 1);
-               add_property_utf8_string(return_value, "dir", (dir) ? (char *)dir : "", 1);
-       } else {
-               add_property_string(return_value, "charset", (name) ? (char *)name : "", 1);
-               add_property_string(return_value, "collation",(collation) ? (char *)collation : "", 1);
-               add_property_string(return_value, "dir", (dir) ? (char *)dir : "", 1);
-       }
+       add_property_utf8_string(return_value, "charset", (name) ? (char *)name : "", 1);
+       add_property_utf8_string(return_value, "collation", (collation) ? (char *)collation : "", 1);
+       add_property_utf8_string(return_value, "dir", (dir) ? (char *)dir : "", 1);
        add_property_long(return_value, "min_length", minlength);
        add_property_long(return_value, "max_length", maxlength);
        add_property_long(return_value, "number", number);
        add_property_long(return_value, "state", state);
-       if (UG(unicode)) {
-               add_property_utf8_string(return_value, "comment", (comment) ? (char *)comment : "", 1);
-       } else {
-               add_property_string(return_value, "comment", (comment) ? (char *)comment : "", 1);
-       }
+       add_property_utf8_string(return_value, "comment", (comment) ? (char *)comment : "", 1);
 }
 /* }}} */
 #endif
index 4dbc6706606850954f11421147305fd956c8c1dc..0f7c30bfb284448ffa586ffcf4a0bec4d748c96e 100644 (file)
@@ -663,12 +663,12 @@ PHPAPI MYSQLND *mysqlnd_connect(MYSQLND *conn,
                (charset = mysqlnd_find_charset_name(conn->options.charset_name)))
        {
                auth_packet->charset_no = charset->nr;
-#if PHP_MAJOR_VERSION >= 6
-       } else if (UG(unicode)) {
-               auth_packet->charset_no = 200;/* utf8 - swedish collation, check mysqlnd_charset.c */
-#endif
        } else {
+#if PHP_MAJOR_VERSION >= 6             
+               auth_packet->charset_no = 200;/* utf8 - swedish collation, check mysqlnd_charset.c */
+#else
                auth_packet->charset_no = greet_packet.charset_no;
+#endif
        }
        auth_packet->db                 = db;
        auth_packet->db_len             = db_len;
index 51d3f0413be162d8db512aa807db617a2a933de7..20a258c11c8a3acc3a5c35b28f5430ff3a5a09c4 100644 (file)
@@ -1107,6 +1107,7 @@ static int mysqlnd_build_trace_args(zval **arg TSRMLS_DC, int num_args, va_list
                        TRACE_APPEND_STR("Array, ");
                        break;
                case IS_OBJECT: {
+                       zval tmp;
                        zstr class_name;
                        zend_uint class_name_len;
                        int dup;
@@ -1115,16 +1116,11 @@ static int mysqlnd_build_trace_args(zval **arg TSRMLS_DC, int num_args, va_list
 
                        dup = zend_get_object_classname(*arg, &class_name, &class_name_len TSRMLS_CC);
 
-                       if (UG(unicode)) {
-                               zval tmp;
+                       ZVAL_UNICODEL(&tmp, class_name.u, class_name_len, 1);
+                       convert_to_string_with_converter(&tmp, ZEND_U_CONVERTER(UG(output_encoding_conv)));
+                       TRACE_APPEND_STRL(Z_STRVAL(tmp), Z_STRLEN(tmp));
+                       zval_dtor(&tmp);
 
-                               ZVAL_UNICODEL(&tmp, class_name.u, class_name_len, 1);
-                               convert_to_string_with_converter(&tmp, ZEND_U_CONVERTER(UG(output_encoding_conv)));
-                               TRACE_APPEND_STRL(Z_STRVAL(tmp), Z_STRLEN(tmp));
-                               zval_dtor(&tmp);
-                       } else {
-                               TRACE_APPEND_STRL(class_name.s, class_name_len);
-                       }
                        if(!dup) {
                                efree(class_name.v);
                        }
index b1a6aa5b1a6ebdb3f3bc5b81990559531655331b..1779749d5e0063e00c6d44385c028ee39afe69fe 100644 (file)
@@ -39,13 +39,6 @@ char * mysqlnd_palloc_get_zval_name = "mysqlnd_palloc_get_zval";
 #endif
 
 
-#if PHP_MAJOR_VERSION < 6
-#define IS_UNICODE_DISABLED  (1)
-#else
-#define IS_UNICODE_DISABLED  (!UG(unicode))
-#endif
-
-
 /* {{{ _mysqlnd_palloc_init_cache */
 PHPAPI MYSQLND_ZVAL_PCACHE* _mysqlnd_palloc_init_cache(unsigned int cache_size TSRMLS_DC)
 {
index b6d4a7902b569e0a5e9cbf8c18b1d0d55235a7f3..673523c77c20498eca850e7dd51dc7ff2d14eeaf 100644 (file)
@@ -685,7 +685,7 @@ mysqlnd_stmt_execute_store_params(MYSQLND_STMT *stmt, zend_uchar **buf, zend_uch
 #if PHP_MAJOR_VERSION < 6
                                if (Z_TYPE_P(the_var) != IS_STRING)
 #elif PHP_MAJOR_VERSION >= 6
-                               if (Z_TYPE_P(the_var) != IS_STRING || (UG(unicode) && Z_TYPE_P(the_var) == IS_UNICODE))
+                               if (Z_TYPE_P(the_var) != IS_STRING || Z_TYPE_P(the_var) == IS_UNICODE)
 #endif
                                {
                                        if (!copies || !copies[i]) {
@@ -693,7 +693,7 @@ mysqlnd_stmt_execute_store_params(MYSQLND_STMT *stmt, zend_uchar **buf, zend_uch
                                        }
                                        the_var = copies[i];
 #if PHP_MAJOR_VERSION >= 6
-                                       if (UG(unicode) && Z_TYPE_P(the_var) == IS_UNICODE) {
+                                       if (Z_TYPE_P(the_var) == IS_UNICODE) {
                                                zval_unicode_to_string_ex(the_var, UG(utf8_conv) TSRMLS_CC);
                                        }
 #endif
index ddfe427d4502e551068278549ec3426a0aeca979..e2c8c2c0af92c7f8f2958d2937402fcfffd6e37f 100644 (file)
@@ -910,21 +910,18 @@ mysqlnd_fetch_row_unbuffered(MYSQLND_RES *result, void *param, unsigned int flag
                                        */
                                        if (zend_hash_key->is_numeric == FALSE) {
 #if PHP_MAJOR_VERSION >= 6
-                                               if (UG(unicode)) {
-                                                       zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
-                                                                                                        zend_hash_key->ustr,
-                                                                                                        zend_hash_key->ulen + 1,
-                                                                                                        zend_hash_key->key,
-                                                                                                        (void *) &data, sizeof(zval *), NULL);
-                                               } else
+                                               zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
+                                                                                                zend_hash_key->ustr,
+                                                                                                zend_hash_key->ulen + 1,
+                                                                                                zend_hash_key->key,
+                                                                                                (void *) &data, sizeof(zval *), NULL);
+#else
+                                               zend_hash_quick_update(Z_ARRVAL_P(row),
+                                                                                          field->name,
+                                                                                          field->name_length + 1,
+                                                                                          zend_hash_key->key,
+                                                                                          (void *) &data, sizeof(zval *), NULL);
 #endif
-                                               {
-                                                       zend_hash_quick_update(Z_ARRVAL_P(row),
-                                                                                                  field->name,
-                                                                                                  field->name_length + 1,
-                                                                                                  zend_hash_key->key,
-                                                                                                  (void *) &data, sizeof(zval *), NULL);
-                                               }
                                        } else {
                                                zend_hash_index_update(Z_ARRVAL_P(row),
                                                                                           zend_hash_key->key,
@@ -1143,21 +1140,18 @@ mysqlnd_fetch_row_buffered(MYSQLND_RES *result, void *param, unsigned int flags,
                                */
                                if (zend_hash_key->is_numeric == FALSE) {
 #if PHP_MAJOR_VERSION >= 6
-                                       if (UG(unicode)) {
-                                               zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
-                                                                                                zend_hash_key->ustr,
-                                                                                                zend_hash_key->ulen + 1,
-                                                                                                zend_hash_key->key,
-                                                                                                (void *) &data, sizeof(zval *), NULL);
-                                       } else
+                                       zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
+                                                                                        zend_hash_key->ustr,
+                                                                                        zend_hash_key->ulen + 1,
+                                                                                        zend_hash_key->key,
+                                                                                        (void *) &data, sizeof(zval *), NULL);
+#else
+                                       zend_hash_quick_update(Z_ARRVAL_P(row),
+                                                                                  field->name,
+                                                                                  field->name_length + 1,
+                                                                                  zend_hash_key->key,
+                                                                                  (void *) &data, sizeof(zval *), NULL);
 #endif
-                                       {
-                                               zend_hash_quick_update(Z_ARRVAL_P(row),
-                                                                                          field->name,
-                                                                                          field->name_length + 1,
-                                                                                          zend_hash_key->key,
-                                                                                          (void *) &data, sizeof(zval *), NULL);
-                                       }
                                } else {
                                        zend_hash_index_update(Z_ARRVAL_P(row),
                                                                                   zend_hash_key->key,
@@ -1419,21 +1413,18 @@ mysqlnd_fetch_row_async_buffered(MYSQLND_RES *result, void *param, unsigned int
                                */
                                if (result->meta->zend_hash_keys[i].is_numeric == FALSE) {
 #if PHP_MAJOR_VERSION >= 6
-                                       if (UG(unicode)) {
-                                               zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
-                                                                                                result->meta->zend_hash_keys[i].ustr,
-                                                                                                result->meta->zend_hash_keys[i].ulen + 1,
-                                                                                                result->meta->zend_hash_keys[i].key,
-                                                                                                (void *) &data, sizeof(zval *), NULL);
-                                       } else
+                                       zend_u_hash_quick_update(Z_ARRVAL_P(row), IS_UNICODE,
+                                                                                        result->meta->zend_hash_keys[i].ustr,
+                                                                                        result->meta->zend_hash_keys[i].ulen + 1,
+                                                                                        result->meta->zend_hash_keys[i].key,
+                                                                                        (void *) &data, sizeof(zval *), NULL);
+#else
+                                       zend_hash_quick_update(Z_ARRVAL_P(row),
+                                                                                  result->meta->fields[i].name,
+                                                                                  result->meta->fields[i].name_length + 1,
+                                                                                  result->meta->zend_hash_keys[i].key,
+                                                                                  (void *) &data, sizeof(zval *), NULL);
 #endif
-                                       {
-                                               zend_hash_quick_update(Z_ARRVAL_P(row),
-                                                                                          result->meta->fields[i].name,
-                                                                                          result->meta->fields[i].name_length + 1,
-                                                                                          result->meta->zend_hash_keys[i].key,
-                                                                                          (void *) &data, sizeof(zval *), NULL);
-                                       }
                                } else {
                                        zend_hash_index_update(Z_ARRVAL_P(row),
                                                                                   result->meta->zend_hash_keys[i].key,
index 96cbdd9101cfa91774b1a59593af5c0d3c1e3e11..fcb6975ff5f65e23cb423faf77b274ccccca01bf 100644 (file)
@@ -143,6 +143,8 @@ MYSQLND_METHOD(mysqlnd_res_meta, read_metadata)(MYSQLND_RES_METADATA * const met
 {
        unsigned int i = 0;
        php_mysql_packet_res_field field_packet;
+       UChar *ustr;
+       int ulen;
 
        DBG_ENTER("mysqlnd_res_meta::read_metadata");
 
@@ -212,39 +214,33 @@ MYSQLND_METHOD(mysqlnd_res_meta, read_metadata)(MYSQLND_RES_METADATA * const met
                }
 
 #if PHP_MAJOR_VERSION >= 6
-               if (UG(unicode)) {
-                       UChar *ustr;
-                       int ulen;
-                       zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
-                                                                  meta->fields[i].name,
-                                                                  meta->fields[i].name_length TSRMLS_CC);
-                       if ((meta->zend_hash_keys[i].is_numeric =
-                                                       mysqlnd_unicode_is_key_numeric(ustr, ulen + 1, &idx)))
-                       {
-                               meta->zend_hash_keys[i].key = idx;
-                               mnd_efree(ustr);
-                       } else {
-                               meta->zend_hash_keys[i].ustr.u = ustr;
-                               meta->zend_hash_keys[i].ulen = ulen;
-                               meta->zend_hash_keys[i].key = zend_u_get_hash_value(IS_UNICODE, ZSTR(ustr), ulen + 1);
-                       }
-
-               } else 
-#endif
+               zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen,
+                                                          meta->fields[i].name,
+                                                          meta->fields[i].name_length TSRMLS_CC);
+               if ((meta->zend_hash_keys[i].is_numeric =
+                                               mysqlnd_unicode_is_key_numeric(ustr, ulen + 1, &idx)))
                {
-                       /* For BC we have to check whether the key is numeric and use it like this */
-                       if ((meta->zend_hash_keys[i].is_numeric =
-                                               mysqlnd_is_key_numeric(field_packet.metadata->name,
-                                                                                          field_packet.metadata->name_length + 1,
-                                                                                          &idx)))
-                       {
-                               meta->zend_hash_keys[i].key = idx;
-                       } else {
-                               meta->zend_hash_keys[i].key =
-                                               zend_get_hash_value(field_packet.metadata->name,
-                                                                                       field_packet.metadata->name_length + 1);
-                       }
+                       meta->zend_hash_keys[i].key = idx;
+                       mnd_efree(ustr);
+               } else {
+                       meta->zend_hash_keys[i].ustr.u = ustr;
+                       meta->zend_hash_keys[i].ulen = ulen;
+                       meta->zend_hash_keys[i].key = zend_u_get_hash_value(IS_UNICODE, ZSTR(ustr), ulen + 1);
+               }
+#else
+               /* For BC we have to check whether the key is numeric and use it like this */
+               if ((meta->zend_hash_keys[i].is_numeric =
+                                       mysqlnd_is_key_numeric(field_packet.metadata->name,
+                                                                                  field_packet.metadata->name_length + 1,
+                                                                                  &idx)))
+               {
+                       meta->zend_hash_keys[i].key = idx;
+               } else {
+                       meta->zend_hash_keys[i].key =
+                                       zend_get_hash_value(field_packet.metadata->name,
+                                                                               field_packet.metadata->name_length + 1);
                }
+#endif
        }
        PACKET_FREE_ALLOCA(field_packet);
 
index fd9c455aee7e409fc0edf10c77bd2f7c4c24a273..0807b3d0175c0f62ee895a7ffa031eabace1f338 100644 (file)
@@ -168,7 +168,7 @@ mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, zval *return_value TS
                
                sprintf((char *)&tmp, MYSQLND_LLU_SPEC, stats->values[i]);
 #if PHP_MAJOR_VERSION >= 6
-               if (UG(unicode)) {
+               {
                        UChar *ustr, *tstr;
                        int ulen, tlen;
 
@@ -178,12 +178,11 @@ mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, zval *return_value TS
                        add_u_assoc_unicode_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen, tstr, 1);
                        efree(ustr);
                        efree(tstr);
-               } else
-#endif         
-               {       
-                       add_assoc_string_ex(return_value, mysqlnd_stats_values_names[i].s,
-                                                               mysqlnd_stats_values_names[i].l + 1, tmp, 1);
                }
+#else
+               add_assoc_string_ex(return_value, mysqlnd_stats_values_names[i].s,
+                                                       mysqlnd_stats_values_names[i].l + 1, tmp, 1);
+#endif
        }
 }
 /* }}} */
index b00096c136f076458f20ead874d101449fe991a5..fc798630bf7675f2b4a316f4eb42a88b25818bdf 100644 (file)
@@ -50,25 +50,22 @@ PHPAPI void mysqlnd_minfo_print_hash(zval *values)
                zstr    string_key;
                uint    string_key_len;
                ulong   num_key;
+               int             s_len;
                char    *s = NULL;
+               
 
                TSRMLS_FETCH();
 
                zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &string_key, &string_key_len, &num_key, 0, &pos_values);
 
                convert_to_string(*values_entry);
-
-               if (UG(unicode)) {
-                       int s_len;
-                       if (zend_unicode_to_string(ZEND_U_CONVERTER(UG(runtime_encoding_conv)),
-                                                                          &s, &s_len, string_key.u, string_key_len TSRMLS_CC) == SUCCESS) {
-                               php_info_print_table_row(2, s, Z_STRVAL_PP(values_entry));
-                       }
-                       if (s) {
-                               mnd_efree(s);
-                       }
-               } else {
-                       php_info_print_table_row(2, string_key.s, Z_STRVAL_PP(values_entry));
+                       
+               if (zend_unicode_to_string(ZEND_U_CONVERTER(UG(runtime_encoding_conv)),
+                                                                  &s, &s_len, string_key.u, string_key_len TSRMLS_CC) == SUCCESS) {
+                       php_info_print_table_row(2, s, Z_STRVAL_PP(values_entry));
+               }
+               if (s) {
+                       mnd_efree(s);
                }
 
                zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos_values);
index 73d13c21ca0c6a24bdd5d2b79528e94bee714145..d369f68dc27705b483df1c6abad0a4a84c6746fb 100644 (file)
@@ -1437,7 +1437,7 @@ static void preg_replace_impl(INTERNAL_FUNCTION_PARAMETERS, int is_callable_repl
 
        if (is_callable_replace) {
                if (Z_TYPE_P(replace) != IS_ARRAY && Z_TYPE_P(replace) != IS_OBJECT) {
-                       convert_to_text(replace);
+                       convert_to_unicode(replace);
                }
                if (!zend_is_callable(replace, 0, &callback_name TSRMLS_CC)) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Requires argument 2, '%R', to be a valid callback", Z_TYPE(callback_name), Z_UNIVAL(callback_name));