summaryrefslogtreecommitdiff
path: root/ext/pgsql/pgsql.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2007-11-22 00:17:28 +0000
committerIlia Alshanetsky <iliaa@php.net>2007-11-22 00:17:28 +0000
commit969f81a49ebb3399a81e3439e195ef658dbb19df (patch)
tree3ac93da7a6561b4e9fba0dc73dfe3f4c88a55ef2 /ext/pgsql/pgsql.c
parent6cfced8eff9437ba3c8ffe45cbc19d63939b2e4f (diff)
downloadphp-git-969f81a49ebb3399a81e3439e195ef658dbb19df.tar.gz
Fixed bug #43041 (micro-optimizations in pgsql data retrieval) Initial patch
by andy at petdance dot com
Diffstat (limited to 'ext/pgsql/pgsql.c')
-rw-r--r--ext/pgsql/pgsql.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index f18e859e6b..bf5ecbd481 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -1996,8 +1996,7 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, long result_type,
pgsql_result_handle *pg_result;
int i, num_fields, pgsql_row, use_row;
long row = -1;
- char *element, *field_name;
- uint element_len;
+ char *field_name;
zval *ctor_params = NULL;
zend_class_entry *ce = NULL;
@@ -2068,12 +2067,12 @@ static void php_pgsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, long result_type,
add_assoc_null(return_value, field_name);
}
} else {
- element = PQgetvalue(pgsql_result, pgsql_row, i);
- element_len = (element ? strlen(element) : 0);
+ char *element = PQgetvalue(pgsql_result, pgsql_row, i);
if (element) {
char *data;
int data_len;
int should_copy=0;
+ const uint element_len = strlen(element);
if (PG(magic_quotes_runtime)) {
data = php_addslashes(element, element_len, &data_len, 0 TSRMLS_CC);
@@ -5743,8 +5742,8 @@ PHP_FUNCTION(pg_delete)
PHP_PGSQL_API int php_pgsql_result2array(PGresult *pg_result, zval *ret_array TSRMLS_DC)
{
zval *row;
- char *field_name, *element, *data;
- size_t num_fields, element_len, data_len;
+ char *field_name;
+ size_t num_fields;
int pg_numrows, pg_row;
uint i;
assert(Z_TYPE_P(ret_array) == IS_ARRAY);
@@ -5761,9 +5760,12 @@ PHP_PGSQL_API int php_pgsql_result2array(PGresult *pg_result, zval *ret_array TS
field_name = PQfname(pg_result, i);
add_assoc_null(row, field_name);
} else {
- element = PQgetvalue(pg_result, pg_row, i);
- element_len = (element ? strlen(element) : 0);
+ char *element = PQgetvalue(pg_result, pg_row, i);
if (element) {
+ char *data;
+ size_t data_len;
+ const size_t element_len = strlen(element);
+
if (PG(magic_quotes_runtime)) {
data = php_addslashes(element, element_len, &data_len, 0 TSRMLS_CC);
} else {