summaryrefslogtreecommitdiff
path: root/ext/mysqlnd/mysqlnd_statistics.c
diff options
context:
space:
mode:
authorAndrey Hristov <andrey@php.net>2010-01-11 18:31:02 +0000
committerAndrey Hristov <andrey@php.net>2010-01-11 18:31:02 +0000
commitd999552ae7fafc207772ad69c72750e833c6d160 (patch)
tree10e53da52dfb831f04054a13787f2e3aaf9688fe /ext/mysqlnd/mysqlnd_statistics.c
parent33fc7d77d7d0f7c85025b8aa82d62b154c4bc71f (diff)
downloadphp-git-d999552ae7fafc207772ad69c72750e833c6d160.tar.gz
missed to commit in 5_3, here it comes, reusability of stats
Diffstat (limited to 'ext/mysqlnd/mysqlnd_statistics.c')
-rw-r--r--ext/mysqlnd/mysqlnd_statistics.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/ext/mysqlnd/mysqlnd_statistics.c b/ext/mysqlnd/mysqlnd_statistics.c
index 756d4ce228..e52414b3e8 100644
--- a/ext/mysqlnd/mysqlnd_statistics.c
+++ b/ext/mysqlnd/mysqlnd_statistics.c
@@ -190,13 +190,13 @@ const MYSQLND_STRING mysqlnd_stats_values_names[STAT_LAST] =
/* {{{ mysqlnd_fill_stats_hash */
-void
-mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, zval *return_value TSRMLS_DC ZEND_FILE_LINE_DC)
+PHPAPI void
+mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, const MYSQLND_STRING * names, zval *return_value TSRMLS_DC ZEND_FILE_LINE_DC)
{
unsigned int i;
- mysqlnd_array_init(return_value, STAT_LAST);
- for (i = 0; i < STAT_LAST; i++) {
+ mysqlnd_array_init(return_value, stats->count);
+ for (i = 0; i < stats->count; i++) {
#if PHP_MAJOR_VERSION >= 6
UChar *ustr, *tstr;
int ulen, tlen;
@@ -205,15 +205,13 @@ mysqlnd_fill_stats_hash(const MYSQLND_STATS * const stats, zval *return_value TS
sprintf((char *)&tmp, MYSQLND_LLU_SPEC, stats->values[i]);
#if PHP_MAJOR_VERSION >= 6
- zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, mysqlnd_stats_values_names[i].s,
- mysqlnd_stats_values_names[i].l + 1 TSRMLS_CC);
+ zend_string_to_unicode(UG(utf8_conv), &ustr, &ulen, names[i].s, names[i].l + 1 TSRMLS_CC);
zend_string_to_unicode(UG(utf8_conv), &tstr, &tlen, tmp, strlen(tmp) + 1 TSRMLS_CC);
add_u_assoc_unicode_ex(return_value, IS_UNICODE, ZSTR(ustr), ulen, tstr, 1);
efree(ustr);
efree(tstr);
#else
- add_assoc_string_ex(return_value, mysqlnd_stats_values_names[i].s,
- mysqlnd_stats_values_names[i].l + 1, tmp, 1);
+ add_assoc_string_ex(return_value, names[i].s, names[i].l + 1, tmp, 1);
#endif
}
}
@@ -229,7 +227,7 @@ PHPAPI void _mysqlnd_get_client_stats(zval *return_value TSRMLS_DC ZEND_FILE_LIN
memset(&stats, 0, sizeof(stats));
stats_ptr = &stats;
}
- mysqlnd_fill_stats_hash(stats_ptr, return_value TSRMLS_CC ZEND_FILE_LINE_CC);
+ mysqlnd_fill_stats_hash(stats_ptr, mysqlnd_stats_values_names, return_value TSRMLS_CC ZEND_FILE_LINE_CC);
DBG_VOID_RETURN;
}
/* }}} */
@@ -292,7 +290,7 @@ mysqlnd_stats_reset_triggers(MYSQLND_STATS * const stats TSRMLS_DC)
DBG_ENTER("mysqlnd_stats_reset_trigger");
if (stats) {
MYSQLND_STATS_LOCK(stats);
- memset(stats->triggers, 0, STAT_LAST * sizeof(mysqlnd_stat_trigger));
+ memset(stats->triggers, 0, stats->count * sizeof(mysqlnd_stat_trigger));
MYSQLND_STATS_UNLOCK(stats);
}
DBG_RETURN(ret);