@@ -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)
19982000static 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