diff options
author | Xinchen Hui <laruence@gmail.com> | 2016-01-08 11:19:32 +0800 |
---|---|---|
committer | Anatol Belski <ab@php.net> | 2016-01-11 08:32:47 +0100 |
commit | 8bfa5193d55f1287aaa996abfbd1b40af564fdec (patch) | |
tree | 4ab1569eb8ad1b9d38c53d9bfb1e840b9aea94c6 /ext/interbase/php_ibase_includes.h | |
parent | ae50a0c0beba08e6abbc6cb5131fc44d5c6dde42 (diff) | |
download | php-git-8bfa5193d55f1287aaa996abfbd1b40af564fdec.tar.gz |
Fix various bugs in interbase
Also read: https://marc.info/?l=php-internals&m=145077389117375&w=2
Diffstat (limited to 'ext/interbase/php_ibase_includes.h')
-rw-r--r-- | ext/interbase/php_ibase_includes.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/ext/interbase/php_ibase_includes.h b/ext/interbase/php_ibase_includes.h index b7fb0a340f..fbbf7e34ce 100644 --- a/ext/interbase/php_ibase_includes.h +++ b/ext/interbase/php_ibase_includes.h @@ -60,7 +60,7 @@ extern int le_link, le_plink, le_trans; ZEND_BEGIN_MODULE_GLOBALS(ibase) ISC_STATUS status[20]; - long default_link; + zend_resource *default_link; long num_links, num_persistent; char errmsg[MAX_ERRMSG]; long sql_code; @@ -95,7 +95,7 @@ typedef struct { typedef struct event { ibase_db_link *link; - long link_res_id; + zend_resource* link_res; ISC_LONG event_id; unsigned short event_count; char **events; @@ -155,13 +155,15 @@ void _php_ibase_module_error(char *, ...) /* determine if a resource is a link or transaction handle */ #define PHP_IBASE_LINK_TRANS(zv, lh, th) \ - do { if (!zv) { \ - lh = (ibase_db_link *)zend_fetch_resource2(IBG(default_link), \ - "InterBase link", le_link, le_plink); } \ - else \ - _php_ibase_get_link_trans(INTERNAL_FUNCTION_PARAM_PASSTHRU, zv, &lh, &th); \ - if (SUCCESS != _php_ibase_def_trans(lh, &th)) { RETURN_FALSE; } \ - } while (0) + do { \ + if (!zv) { \ + lh = (ibase_db_link *)zend_fetch_resource2( \ + IBG(default_link), "InterBase link", le_link, le_plink); \ + } else { \ + _php_ibase_get_link_trans(INTERNAL_FUNCTION_PARAM_PASSTHRU, zv, &lh, &th); \ + } \ + if (SUCCESS != _php_ibase_def_trans(lh, &th)) { RETURN_FALSE; } \ + } while (0) int _php_ibase_def_trans(ibase_db_link *ib_link, ibase_trans **trans); void _php_ibase_get_link_trans(INTERNAL_FUNCTION_PARAMETERS, zval *link_id, |