Skip to content

Commit 43ac692

Browse files
committed
Use faster string operations in sqlite3
1 parent bce1f4a commit 43ac692

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

ext/sqlite3/sqlite3.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -833,13 +833,14 @@ static int sqlite3_do_callback(zend_fcall_info_cache *fcc, uint32_t argc, sqlite
833833
break;
834834

835835
default: {
836-
zend_string *str = zval_try_get_string(&retval);
836+
zend_string *tmp;
837+
zend_string *str = zval_try_get_tmp_string(&retval, &tmp);
837838
if (UNEXPECTED(!str)) {
838839
ret = FAILURE;
839840
break;
840841
}
841842
sqlite3_result_text(context, ZSTR_VAL(str), ZSTR_LEN(str), SQLITE_TRANSIENT);
842-
zend_string_release(str);
843+
zend_tmp_string_release(tmp);
843844
break;
844845
}
845846
}
@@ -1564,15 +1565,16 @@ static int php_sqlite3_bind_params(php_sqlite3_stmt *stmt_obj) /* {{{ */
15641565
}
15651566

15661567
case SQLITE3_TEXT: {
1567-
zend_string *str = zval_try_get_string(parameter);
1568+
zend_string *tmp;
1569+
zend_string *str = zval_try_get_tmp_string(parameter, &tmp);
15681570
if (UNEXPECTED(!str)) {
15691571
return FAILURE;
15701572
}
15711573
return_code = sqlite3_bind_text(stmt_obj->stmt, param->param_number, ZSTR_VAL(str), ZSTR_LEN(str), SQLITE_TRANSIENT);
15721574
if (return_code != SQLITE_OK) {
15731575
php_sqlite3_error(stmt_obj->db_obj, return_code, "Unable to bind parameter number " ZEND_LONG_FMT, param->param_number);
15741576
}
1575-
zend_string_release(str);
1577+
zend_tmp_string_release(tmp);
15761578
break;
15771579
}
15781580

@@ -1998,7 +2000,7 @@ PHP_METHOD(SQLite3Result, fetchArray)
19982000
static void sqlite3result_clear_column_names_cache(php_sqlite3_result *result) {
19992001
if (result->column_names) {
20002002
for (int i = 0; i < result->column_count; i++) {
2001-
zend_string_release(result->column_names[i]);
2003+
zend_string_release_ex(result->column_names[i], false);
20022004
}
20032005
efree(result->column_names);
20042006
}

0 commit comments

Comments
 (0)