svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.h
trunk/ext/mysqlnd/mysqlnd_result_meta.c trunk/ext/mysqlnd/mysqlnd_result_meta.h

From: Date: Fri, 14 May 2010 16:42:17 +0000
Subject: svn: /php/php-src/ branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.h
trunk/ext/mysqlnd/mysqlnd_result_meta.c trunk/ext/mysqlnd/mysqlnd_result_meta.h
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-62632@lists.php.net to get a copy of this message
andrey Fri, 14 May 2010 16:42:17 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=299389 Log: result_meta local storage Changed paths: U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c U php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.h U php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.c U php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.h Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c 2010-05-14 16:10:33 UTC (rev 299388) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.c 2010-05-14 16:42:17 UTC (rev 299389) @@ -442,14 +442,14 @@ PHPAPI MYSQLND_RES_METADATA * mysqlnd_result_meta_init(unsigned int field_count, zend_bool persistent TSRMLS_DC) { - MYSQLND_RES_METADATA *ret; + size_t alloc_size = sizeof(MYSQLND_RES_METADATA) + mysqlnd_plugin_count() * sizeof(void *); + MYSQLND_RES_METADATA *ret = mnd_pecalloc(1, alloc_size, persistent); DBG_ENTER("mysqlnd_result_meta_init"); DBG_INF_FMT("persistent=%d", persistent); - /* +1 is to have empty marker at the end */ - ret = mnd_pecalloc(1, sizeof(MYSQLND_RES_METADATA), persistent); ret->persistent = persistent; ret->field_count = field_count; + /* +1 is to have empty marker at the end */ ret->fields = mnd_pecalloc(field_count + 1, sizeof(MYSQLND_FIELD), ret->persistent); ret->zend_hash_keys = mnd_pecalloc(field_count, sizeof(struct mysqlnd_field_hash_key), ret->persistent); @@ -468,6 +468,19 @@ /* }}} */ +/* {{{ _mysqlnd_plugin_get_plugin_result_metadata_data */ +PHPAPI void ** +_mysqlnd_plugin_get_plugin_result_metadata_data(const MYSQLND_RES_METADATA * meta, unsigned int plugin_id TSRMLS_DC) +{ + DBG_ENTER("_mysqlnd_plugin_get_plugin_result_metadata_data"); + DBG_INF_FMT("plugin_id=%u", plugin_id); + if (!meta || plugin_id >= mysqlnd_plugin_count()) { + return NULL; + } + DBG_RETURN((void *)((char *)meta + sizeof(MYSQLND_RES_METADATA) + plugin_id * sizeof(void *))); +} +/* }}} */ + /* * Local variables: * tab-width: 4 Modified: php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.h =================================================================== --- php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.h 2010-05-14 16:10:33 UTC (rev 299388) +++ php/php-src/branches/PHP_5_3/ext/mysqlnd/mysqlnd_result_meta.h 2010-05-14 16:42:17 UTC (rev 299389) @@ -25,6 +25,7 @@ PHPAPI MYSQLND_RES_METADATA * mysqlnd_result_meta_init(unsigned int field_count, zend_bool persistent TSRMLS_DC); PHPAPI struct st_mysqlnd_res_meta_methods * mysqlnd_result_metadata_get_methods(); +PHPAPI void ** _mysqlnd_plugin_get_plugin_result_metadata_data(const MYSQLND_RES_METADATA * meta, unsigned int plugin_id TSRMLS_DC); #endif /* MYSQLND_RESULT_META_H */ Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.c =================================================================== --- php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.c 2010-05-14 16:10:33 UTC (rev 299388) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.c 2010-05-14 16:42:17 UTC (rev 299389) @@ -442,14 +442,14 @@ PHPAPI MYSQLND_RES_METADATA * mysqlnd_result_meta_init(unsigned int field_count, zend_bool persistent TSRMLS_DC) { - MYSQLND_RES_METADATA *ret; + size_t alloc_size = sizeof(MYSQLND_RES_METADATA) + mysqlnd_plugin_count() * sizeof(void *); + MYSQLND_RES_METADATA *ret = mnd_pecalloc(1, alloc_size, persistent); DBG_ENTER("mysqlnd_result_meta_init"); DBG_INF_FMT("persistent=%d", persistent); - /* +1 is to have empty marker at the end */ - ret = mnd_pecalloc(1, sizeof(MYSQLND_RES_METADATA), persistent); ret->persistent = persistent; ret->field_count = field_count; + /* +1 is to have empty marker at the end */ ret->fields = mnd_pecalloc(field_count + 1, sizeof(MYSQLND_FIELD), ret->persistent); ret->zend_hash_keys = mnd_pecalloc(field_count, sizeof(struct mysqlnd_field_hash_key), ret->persistent); @@ -468,6 +468,19 @@ /* }}} */ +/* {{{ _mysqlnd_plugin_get_plugin_result_metadata_data */ +PHPAPI void ** +_mysqlnd_plugin_get_plugin_result_metadata_data(const MYSQLND_RES_METADATA * meta, unsigned int plugin_id TSRMLS_DC) +{ + DBG_ENTER("_mysqlnd_plugin_get_plugin_result_metadata_data"); + DBG_INF_FMT("plugin_id=%u", plugin_id); + if (!meta || plugin_id >= mysqlnd_plugin_count()) { + return NULL; + } + DBG_RETURN((void *)((char *)meta + sizeof(MYSQLND_RES_METADATA) + plugin_id * sizeof(void *))); +} +/* }}} */ + /* * Local variables: * tab-width: 4 Modified: php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.h =================================================================== --- php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.h 2010-05-14 16:10:33 UTC (rev 299388) +++ php/php-src/trunk/ext/mysqlnd/mysqlnd_result_meta.h 2010-05-14 16:42:17 UTC (rev 299389) @@ -25,6 +25,7 @@ PHPAPI MYSQLND_RES_METADATA * mysqlnd_result_meta_init(unsigned int field_count, zend_bool persistent TSRMLS_DC); PHPAPI struct st_mysqlnd_res_meta_methods * mysqlnd_result_metadata_get_methods(); +PHPAPI void ** _mysqlnd_plugin_get_plugin_result_metadata_data(const MYSQLND_RES_METADATA * meta, unsigned int plugin_id TSRMLS_DC); #endif /* MYSQLND_RESULT_META_H */

« previous php.cvs (#62632) next »