summaryrefslogtreecommitdiff
path: root/ext/interbase/php_ibase_includes.h
diff options
context:
space:
mode:
authorXinchen Hui <laruence@gmail.com>2016-01-08 11:19:32 +0800
committerAnatol Belski <ab@php.net>2016-01-11 08:32:47 +0100
commit8bfa5193d55f1287aaa996abfbd1b40af564fdec (patch)
tree4ab1569eb8ad1b9d38c53d9bfb1e840b9aea94c6 /ext/interbase/php_ibase_includes.h
parentae50a0c0beba08e6abbc6cb5131fc44d5c6dde42 (diff)
downloadphp-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.h20
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,