diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-11-30 01:13:39 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-11-30 01:13:39 +0300 |
commit | 084c17fe0b68d391467fd48a14433443d4fcba81 (patch) | |
tree | 1f2dbd5590c331de3dcec244aa6e92cc35d55a03 /ext/pdo | |
parent | fa5c186cc00fb31c4953cb0006f9e8bc066ac77a (diff) | |
download | php-git-084c17fe0b68d391467fd48a14433443d4fcba81.tar.gz |
Use zend_string_tolower() where it's possible (to avoid reallocations).
Allow zend_string_tolower_ex() to create parsistent strings
Diffstat (limited to 'ext/pdo')
-rw-r--r-- | ext/pdo/pdo_dbh.c | 6 | ||||
-rw-r--r-- | ext/pdo/pdo_stmt.c | 7 |
2 files changed, 4 insertions, 9 deletions
diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c index 57659967fc..f5b822bd73 100644 --- a/ext/pdo/pdo_dbh.c +++ b/ext/pdo/pdo_dbh.c @@ -1345,9 +1345,6 @@ static union _zend_function *dbh_method_get(zend_object **object, zend_string *m pdo_dbh_object_t *dbh_obj = php_pdo_dbh_fetch_object(*object); zend_string *lc_method_name; - lc_method_name = zend_string_init(ZSTR_VAL(method_name), ZSTR_LEN(method_name), 0); - zend_str_tolower_copy(ZSTR_VAL(lc_method_name), ZSTR_VAL(method_name), ZSTR_LEN(method_name)); - if ((fbc = std_object_handlers.get_method(object, method_name, key)) == NULL) { /* not a pre-defined method, nor a user-defined method; check * the driver specific methods */ @@ -1359,11 +1356,12 @@ static union _zend_function *dbh_method_get(zend_object **object, zend_string *m } } + lc_method_name = zend_string_tolower(method_name); fbc = zend_hash_find_ptr(dbh_obj->inner->cls_methods[PDO_DBH_DRIVER_METHOD_KIND_DBH], lc_method_name); + zend_string_release(lc_method_name); } out: - zend_string_release(lc_method_name); return fbc; } diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c index 33f99b425a..0a825f052e 100644 --- a/ext/pdo/pdo_stmt.c +++ b/ext/pdo/pdo_stmt.c @@ -2223,9 +2223,7 @@ static union _zend_function *dbstmt_method_get(zend_object **object_pp, zend_str zend_string *lc_method_name; zend_object *object = *object_pp; - lc_method_name = zend_string_alloc(ZSTR_LEN(method_name), 0); - zend_str_tolower_copy(ZSTR_VAL(lc_method_name), ZSTR_VAL(method_name), ZSTR_LEN(method_name)); - + lc_method_name = zend_string_tolower(method_name); if ((fbc = zend_hash_find_ptr(&object->ce->function_table, lc_method_name)) == NULL) { pdo_stmt_t *stmt = php_pdo_stmt_fetch_object(object); @@ -2637,8 +2635,7 @@ static union _zend_function *row_method_get( zend_function *fbc; zend_string *lc_method_name; - lc_method_name = zend_string_alloc(ZSTR_LEN(method_name), 0); - zend_str_tolower_copy(ZSTR_VAL(lc_method_name), ZSTR_VAL(method_name), ZSTR_LEN(method_name)); + lc_method_name = zend_string_tolower(method_name); if ((fbc = zend_hash_find_ptr(&pdo_row_ce->function_table, lc_method_name)) == NULL) { zend_string_release(lc_method_name); |