summaryrefslogtreecommitdiff
path: root/ext/pdo
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2017-11-30 01:13:39 +0300
committerDmitry Stogov <dmitry@zend.com>2017-11-30 01:13:39 +0300
commit084c17fe0b68d391467fd48a14433443d4fcba81 (patch)
tree1f2dbd5590c331de3dcec244aa6e92cc35d55a03 /ext/pdo
parentfa5c186cc00fb31c4953cb0006f9e8bc066ac77a (diff)
downloadphp-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.c6
-rw-r--r--ext/pdo/pdo_stmt.c7
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);