summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2001-07-30 20:50:54 +0000
committerfoobar <sniper@php.net>2001-07-30 20:50:54 +0000
commit12ae3ac2d764fc50eadc3704f013cb3cae5bdeed (patch)
treef1e342bb2b7b209c38e8a225b765de10e8b31047
parent75e835017ad4497d51127e034543c5f1d6536d18 (diff)
downloadphp-git-12ae3ac2d764fc50eadc3704f013cb3cae5bdeed.tar.gz
Use the new TSRM structure.
-rw-r--r--ext/informix/ifx.ec207
-rw-r--r--ext/informix/php_informix.h12
2 files changed, 78 insertions, 141 deletions
diff --git a/ext/informix/ifx.ec b/ext/informix/ifx.ec
index 1391f06c3a..88ae6da8cb 100644
--- a/ext/informix/ifx.ec
+++ b/ext/informix/ifx.ec
@@ -59,28 +59,28 @@
#if HAVE_IFX
/* local function prototypes */
-static void php_ifx_set_default_link(int id);
-static long php_intifx_getType(long id, HashTable *list);
+static void php_ifx_set_default_link(int id TSRMLS_DC);
+static long php_intifx_getType(long id, HashTable *list TSRMLS_DC);
static long php_intifx_create_blob(long type, long mode, char* param, long len, HashTable *list);
-static long php_intifx_free_blob(long id, HashTable *list);
-static long php_intifx2_free_blob(long id, HashTable *list);
-static long php_intifx_get_blob(long bid, HashTable *list, char** content);
-static long php_intifx_update_blob(long bid, char* param, long len, HashTable *list);
-static loc_t *php_intifx_get_blobloc(long bid, HashTable *list);
+static long php_intifx_free_blob(long id, HashTable *list TSRMLS_DC);
+static long php_intifx2_free_blob(long id, HashTable *list TSRMLS_DC);
+static long php_intifx_get_blob(long bid, HashTable *list, char** content TSRMLS_DC);
+static long php_intifx_update_blob(long bid, char* param, long len, HashTable *list TSRMLS_DC);
+static loc_t *php_intifx_get_blobloc(long bid, HashTable *list TSRMLS_DC);
static char* php_intifx_create_tmpfile(long bid);
-static long php_intifx_copy_blob(long bid, HashTable *list);
+static long php_intifx_copy_blob(long bid, HashTable *list TSRMLS_DC);
static char* php_intifx_null();
static long php_intifx_create_char(char* param, long len, HashTable *list);
-static long php_intifx_free_char(long id, HashTable *list);
-static long php_intifx_update_char(long bid, char* param, long len, HashTable *list);
-static long php_intifx_get_char(long bid, HashTable *list, char** content);
+static long php_intifx_free_char(long id, HashTable *list TSRMLS_DC);
+static long php_intifx_update_char(long bid, char* param, long len, HashTable *list TSRMLS_DC);
+static long php_intifx_get_char(long bid, HashTable *list, char** content TSRMLS_DC);
#if HAVE_IFX_IUS
static long php_intifxus_create_slob(long create_mode, HashTable *list);
-static long php_intifxus_free_slob(long bid, HashTable *list);
-static long php_intifxus_close_slob(long bid, HashTable *list);
-static long php_intifxus_open_slob(long bid, long create_mode, HashTable *list);
+static long php_intifxus_free_slob(long bid, HashTable *list TSRMLS_DC);
+static long php_intifxus_close_slob(long bid, HashTable *list TSRMLS_DC);
+static long php_intifxus_open_slob(long bid, long create_mode, HashTable *list TSRMLS_DC);
static long php_intifxus_new_slob(HashTable *list);
-static ifx_lo_t *php_intifxus_get_slobloc(long bid, HashTable *list);
+static ifx_lo_t *php_intifxus_get_slobloc(long bid, HashTable *list TSRMLS_DC);
#endif
/* 7.10 on (at least) AIX is missing this */
@@ -225,7 +225,7 @@ EXEC SQL END DECLARE SECTION;
char *ifx_err_msg;
char c;
int errorcode;
- IFXLS_FETCH();
+ TSRMLS_FETCH();
if (IFXG(sv_sqlcode) == 0) {
errorcode = SQLCODE;
@@ -270,7 +270,7 @@ static void _close_ifx_link(zend_rsrc_list_entry *rsrc)
EXEC SQL BEGIN DECLARE SECTION;
char *link;
EXEC SQL END DECLARE SECTION;
- IFXLS_FETCH();
+ TSRMLS_FETCH();
link=(char *)rsrc->ptr;
@@ -288,7 +288,7 @@ static void _close_ifx_plink(zend_rsrc_list_entry *rsrc)
EXEC SQL BEGIN DECLARE SECTION;
char *link;
EXEC SQL END DECLARE SECTION;
- IFXLS_FETCH();
+ TSRMLS_FETCH();
link = (char *)rsrc->ptr;
@@ -365,8 +365,6 @@ PHP_MSHUTDOWN_FUNCTION(ifx)
PHP_RINIT_FUNCTION(ifx)
{
- IFXLS_FETCH();
-
IFXG(default_link)=-1;
IFXG(num_links) = IFXG(num_persistent);
return SUCCESS;
@@ -375,7 +373,6 @@ PHP_RINIT_FUNCTION(ifx)
PHP_MINFO_FUNCTION(ifx)
{
char buf[32];
- IFXLS_FETCH();
php_info_print_table_start();
php_info_print_table_header(2, "Informix support", "enabled");
@@ -390,10 +387,8 @@ PHP_MINFO_FUNCTION(ifx)
DISPLAY_INI_ENTRIES();
}
-static void php_ifx_set_default_link(int id)
+static void php_ifx_set_default_link(int id TSRMLS_DC)
{
- IFXLS_FETCH();
-
if (IFXG(default_link) != -1) {
zend_list_delete(IFXG(default_link));
}
@@ -421,9 +416,6 @@ EXEC SQL BEGIN DECLARE SECTION;
char *ifx;
EXEC SQL END DECLARE SECTION;
- IFXLS_FETCH();
- PLS_FETCH();
-
if (PG(sql_safe_mode)) {
if (ZEND_NUM_ARGS()>0) {
php_error(E_NOTICE, "SQL safe mode in effect - ignoring host/user/password information");
@@ -593,7 +585,7 @@ EXEC SQL END DECLARE SECTION;
}
zend_list_addref(link);
return_value->value.lval = link;
- php_ifx_set_default_link(link);
+ php_ifx_set_default_link(link TSRMLS_CC);
return_value->type = IS_RESOURCE;
efree(hashed_details);
return;
@@ -635,7 +627,7 @@ EXEC SQL END DECLARE SECTION;
IFXG(num_links)++;
}
efree(hashed_details);
- php_ifx_set_default_link(return_value->value.lval);
+ php_ifx_set_default_link(return_value->value.lval TSRMLS_CC);
}
/* {{{ proto int ifx_connect([string database [, string userid [, string password]]])
@@ -673,8 +665,6 @@ EXEC SQL BEGIN DECLARE SECTION;
char *ifx;
EXEC SQL END DECLARE SECTION;
- IFXLS_FETCH();
-
switch (ZEND_NUM_ARGS()) {
case 0:
id = IFXG(default_link);
@@ -768,8 +758,6 @@ EXEC SQL END DECLARE SECTION;
int argc=ZEND_NUM_ARGS();
long ifx_type;
- IFXLS_FETCH();
-
if(argc < 2 || zend_get_parameters_ex(argc, &query, &ifx_link, &dummy, &dummy)==FAILURE) {
WRONG_PARAM_COUNT;
}
@@ -888,11 +876,11 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL SET DESCRIPTOR :descrpid COUNT = :i;
}
- ifx_type=php_intifx_getType((int)(*tmp)->value.lval,&EG(regular_list));
+ ifx_type=php_intifx_getType((int)(*tmp)->value.lval,&EG(regular_list) TSRMLS_CC);
switch(ifx_type) {
case TYPE_BLTEXT:
case TYPE_BLBYTE:
- locator=php_intifx_get_blobloc((int)((*tmp)->value.lval),&EG(regular_list));
+ locator=php_intifx_get_blobloc((int)((*tmp)->value.lval),&EG(regular_list) TSRMLS_CC);
if(locator==NULL) {
IFXG(sv_sqlcode) = SQLCODE;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
@@ -908,7 +896,7 @@ EXEC SQL END DECLARE SECTION;
break;
case TYPE_CHAR:
- len=php_intifx_get_char((int)((*tmp)->value.lval),&EG(regular_list),&char_tmp);
+ len=php_intifx_get_char((int)((*tmp)->value.lval),&EG(regular_list),&char_tmp TSRMLS_CC);
indicator=0;
if(char_tmp==NULL || len<0) {
indicator=-1;
@@ -1036,17 +1024,17 @@ $endif;
int bid = 0;
if(fieldtype==SQLTEXT) {
bid=php_intifx_create_blob(TYPE_BLTEXT,BLMODE_INMEM,"",-1,&EG(regular_list));
- locator=php_intifx_get_blobloc(bid,&EG(regular_list));
+ locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*locator;
}
if(fieldtype==SQLBYTES) {
if(IFXG(blobinfile)==0) {
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INMEM,"",-1,&EG(regular_list));
- locator=php_intifx_get_blobloc(bid,&EG(regular_list));
+ locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
} else {
blobfilename=php_intifx_create_tmpfile(i);
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INFILE, blobfilename,strlen(blobfilename),&EG(regular_list));
- locator=php_intifx_get_blobloc(bid,&EG(regular_list));
+ locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
locator->loc_oflags=LOC_WONLY;
}
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*locator;
@@ -1054,7 +1042,7 @@ $endif;
$ifdef HAVE_IFX_IUS;
if(fieldtype==SQLUDTFIXED) {
bid=php_intifxus_new_slob(&EG(regular_list));
- slocator=php_intifxus_get_slobloc(bid,&EG(regular_list));
+ slocator=php_intifxus_get_slobloc(bid,&EG(regular_list) TSRMLS_CC);
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*slocator;
}
$endif;
@@ -1118,7 +1106,6 @@ EXEC SQL END DECLARE SECTION;
int cursoryproc;
int argc=ZEND_NUM_ARGS();
long ifx_type;
- IFXLS_FETCH();
if(argc < 2 || zend_get_parameters_ex(argc, &query, &ifx_link, &dummy, &dummy)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -1242,11 +1229,11 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL SET DESCRIPTOR :descrpid COUNT = :i;
}
- ifx_type=php_intifx_getType((int)(*tmp)->value.lval,&EG(regular_list));
+ ifx_type=php_intifx_getType((int)(*tmp)->value.lval,&EG(regular_list) TSRMLS_CC);
switch(ifx_type) {
case TYPE_BLTEXT:
case TYPE_BLBYTE:
- locator=php_intifx_get_blobloc((int)((*tmp)->value.lval),&EG(regular_list));
+ locator=php_intifx_get_blobloc((int)((*tmp)->value.lval),&EG(regular_list) TSRMLS_CC);
if(locator==NULL) {
IFXG(sv_sqlcode) = SQLCODE;
EXEC SQL DEALLOCATE DESCRIPTOR :descrpid;
@@ -1261,7 +1248,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA= :*locator, TYPE=:loc_t_type;
break;
case TYPE_CHAR:
- len=php_intifx_get_char((int)((*tmp)->value.lval),&EG(regular_list),&char_tmp);
+ len=php_intifx_get_char((int)((*tmp)->value.lval),&EG(regular_list),&char_tmp TSRMLS_CC);
indicator=0;
if(char_tmp==NULL || len < 0) {
@@ -1372,7 +1359,6 @@ EXEC SQL END DECLARE SECTION;
int locind;
char *blobfilename;
- IFXLS_FETCH();
if(ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &result)==FAILURE)) {
WRONG_PARAM_COUNT;
@@ -1450,17 +1436,17 @@ $endif;
int bid = 0;
if(fieldtype==SQLTEXT) {
bid=php_intifx_create_blob(TYPE_BLTEXT,BLMODE_INMEM,"",-1,&EG(regular_list));
- locator=php_intifx_get_blobloc(bid,&EG(regular_list));
+ locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*locator;
}
if(fieldtype==SQLBYTES) {
if(IFXG(blobinfile)==0) {
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INMEM,"",-1,&EG(regular_list));
- locator=php_intifx_get_blobloc(bid,&EG(regular_list));
+ locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
} else {
blobfilename=php_intifx_create_tmpfile(i);
bid=php_intifx_create_blob(TYPE_BLBYTE,BLMODE_INFILE,blobfilename,strlen(blobfilename),&EG(regular_list));
- locator=php_intifx_get_blobloc(bid,&EG(regular_list));
+ locator=php_intifx_get_blobloc(bid,&EG(regular_list) TSRMLS_CC);
locator->loc_oflags=LOC_WONLY;
}
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*locator;
@@ -1468,7 +1454,7 @@ $endif;
$ifdef HAVE_IFX_IUS;
if(fieldtype==SQLUDTFIXED) {
bid=php_intifxus_new_slob(&EG(regular_list));
- slocator=php_intifxus_get_slobloc(bid,&EG(regular_list));
+ slocator=php_intifxus_get_slobloc(bid,&EG(regular_list) TSRMLS_CC);
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*slocator;
}
$endif;
@@ -1496,7 +1482,6 @@ PHP_FUNCTION(ifx_error)
{
zval **ifx_link;
int id;
- IFXLS_FETCH();
switch(ZEND_NUM_ARGS()) {
case 0:
@@ -1535,7 +1520,6 @@ PHP_FUNCTION(ifx_errormsg)
int msglen, maxmsglen;
char *ifx_errmsg;
char * returnmsg;
- IFXLS_FETCH();
switch(ZEND_NUM_ARGS()) {
case 0:
@@ -1594,7 +1578,6 @@ PHP_FUNCTION(ifx_affected_rows)
{
zval **result;
IFX_RES *Ifx_Result;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS() != 1 || (zend_get_parameters_ex(1, &result))==FAILURE) {
WRONG_PARAM_COUNT;
@@ -1666,7 +1649,6 @@ EXEC SQL END DECLARE SECTION;
char *blobfilename;
char *fetch_pos;
char *nullstr;
- IFXLS_FETCH();
switch(ZEND_NUM_ARGS()) {
case 1:
@@ -1784,8 +1766,8 @@ EXEC SQL END DECLARE SECTION;
if( (IFXG(textasvarchar)==0 && fieldtype==SQLTEXT) ||
(IFXG(byteasvarchar)==0 && fieldtype==SQLBYTES)) {
bid_b=Ifx_Result->res_id[locind];
- bid=php_intifx_copy_blob(bid_b, &EG(regular_list));
- php_intifx_update_blob(bid,nullstr,strlen(nullstr),&EG(regular_list));
+ bid=php_intifx_copy_blob(bid_b, &EG(regular_list) TSRMLS_CC);
+ php_intifx_update_blob(bid,nullstr,strlen(nullstr),&EG(regular_list) TSRMLS_CC);
add_assoc_long(return_value,fieldname,bid);
++locind;
continue;
@@ -1897,7 +1879,7 @@ $ifdef HAVE_IFX_IUS;
bid_b=Ifx_Result->res_id[locind];
add_assoc_long(return_value,fieldname,bid_b);
bid=php_intifxus_new_slob(&EG(regular_list));
- slocator=php_intifxus_get_slobloc(bid,&EG(regular_list));
+ slocator=php_intifxus_get_slobloc(bid,&EG(regular_list) TSRMLS_CC);
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA = :*slocator;
Ifx_Result->res_id[locind]=bid;
++locind;
@@ -1906,7 +1888,7 @@ $endif;
case SQLBYTES :
case SQLTEXT :
bid_b=Ifx_Result->res_id[locind];
- locator_b=php_intifx_get_blobloc(bid_b,&EG(regular_list));
+ locator_b=php_intifx_get_blobloc(bid_b,&EG(regular_list) TSRMLS_CC);
++locind;
EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :*locator_b = DATA;
@@ -1920,8 +1902,8 @@ $endif;
if((IFXG(textasvarchar)==0 && fieldtype==SQLTEXT)
|| (IFXG(byteasvarchar)==0 && fieldtype==SQLBYTES)) {
bid_b=Ifx_Result->res_id[locind];
- bid=php_intifx_copy_blob(bid_b, &EG(regular_list));
- php_intifx_update_blob(bid,nullstr,strlen(nullstr),&EG(regular_list));
+ bid=php_intifx_copy_blob(bid_b, &EG(regular_list) TSRMLS_CC);
+ php_intifx_update_blob(bid,nullstr,strlen(nullstr),&EG(regular_list) TSRMLS_CC);
add_assoc_long(return_value,fieldname,bid);
break;
}
@@ -1941,12 +1923,12 @@ $endif;
}
/* copy blob */
- bid=php_intifx_copy_blob(bid_b, &EG(regular_list));
+ bid=php_intifx_copy_blob(bid_b, &EG(regular_list) TSRMLS_CC);
/* and generate new tempfile for next row */
if(locator_b->loc_loctype==LOCFNAME) {
blobfilename=php_intifx_create_tmpfile(bid_b);
- php_intifx_update_blob(bid_b,blobfilename,strlen(blobfilename),&EG(regular_list));
+ php_intifx_update_blob(bid_b,blobfilename,strlen(blobfilename),&EG(regular_list) TSRMLS_CC);
efree(blobfilename);
EXEC SQL SET DESCRIPTOR :descrpid VALUE :i DATA= :*locator_b;
}
@@ -1963,13 +1945,13 @@ $endif;
char *content;
long lg;
- lg=php_intifx_get_blob(bid, &EG(regular_list), &content);
+ lg=php_intifx_get_blob(bid, &EG(regular_list), &content TSRMLS_CC);
if(content == NULL || lg < 0) {
add_assoc_string(return_value,fieldname,nullstr,DUP);
} else {
add_assoc_stringl(return_value,fieldname,content,lg,DUP);
}
- php_intifx_free_blob(bid, &EG(regular_list));
+ php_intifx_free_blob(bid, &EG(regular_list) TSRMLS_CC);
break;
}
@@ -2042,8 +2024,6 @@ EXEC SQL END DECLARE SECTION;
char *table_options;
int moredata;
- IFXLS_FETCH();
-
switch (ZEND_NUM_ARGS()) {
case 1:
if (zend_get_parameters_ex(1, &result)==FAILURE) {
@@ -2251,7 +2231,7 @@ $endif;
/* if blobinbfile, too bad */
bid_b=Ifx_Result->res_id[locind];
++locind;
- locator_b=php_intifx_get_blobloc(bid_b,&EG(regular_list));
+ locator_b=php_intifx_get_blobloc(bid_b,&EG(regular_list) TSRMLS_CC);
EXEC SQL GET DESCRIPTOR :descrpid VALUE :i :*locator_b = DATA;
/* work around for ESQL/C bug with NULL values and BLOBS */
@@ -2276,7 +2256,7 @@ $endif;
}
/* get blob contents */
- lg=php_intifx_get_blob(bid_b, &EG(regular_list), &content);
+ lg=php_intifx_get_blob(bid_b, &EG(regular_list), &content TSRMLS_CC);
if(content==NULL || lg<0) {
php_printf("<td>%s</td>", nullstr);
@@ -2357,7 +2337,6 @@ EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL END DECLARE SECTION;
int num_fields;
char *p;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -2516,7 +2495,6 @@ EXEC SQL END DECLARE SECTION;
int num_fields;
char string_data[256];
char *p;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -2658,7 +2636,6 @@ PHP_FUNCTION(ifx_num_rows)
{
zval **result;
IFX_RES *Ifx_Result;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -2685,11 +2662,10 @@ PHP_FUNCTION(ifx_num_rows)
Returns the sqlerrd[] fields of the sqlca struct for query resultid */
PHP_FUNCTION(ifx_getsqlca)
{
- zval **result;
+ zval **result;
IFX_RES *Ifx_Result;
char fieldname[16];
int e;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -2727,7 +2703,6 @@ PHP_FUNCTION(ifx_num_fields)
{
zval **result;
IFX_RES *Ifx_Result;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -2765,7 +2740,6 @@ EXEC SQL BEGIN DECLARE SECTION;
EXEC SQL END DECLARE SECTION;
int i;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &result)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -2777,7 +2751,7 @@ EXEC SQL END DECLARE SECTION;
for (i = 0; i < MAX_RESID; ++i) {
if (Ifx_Result->res_id[i]>0) {
- php_intifx2_free_blob(Ifx_Result->res_id[i],&EG(regular_list));
+ php_intifx2_free_blob(Ifx_Result->res_id[i],&EG(regular_list) TSRMLS_CC);
Ifx_Result->res_id[i]=-1;
}
}
@@ -2816,13 +2790,11 @@ EXEC SQL END DECLARE SECTION;
* return -1 on error otherwise the type: TYPE_BLTEXT, TYPE_BLBYTE, TYPE_SLOB
* ----------------------------------------------------------------------
*/
-static long php_intifx_getType(long id, HashTable *list)
+static long php_intifx_getType(long id, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_res;
int type;
- IFXLS_FETCH();
-
Ifx_res = (IFX_IDRES *) zend_list_find(id,&type);
if (type!=le_idresult) {
php_error(E_WARNING,"%d is not a Informix id-result index", id);
@@ -2895,7 +2867,6 @@ PHP_FUNCTION(ifx_create_blob)
static long php_intifx_create_blob(long type, long mode, char* param, long len, HashTable *list)
{
IFX_IDRES *Ifx_blob;
- IFXLS_FETCH();
Ifx_blob=emalloc(sizeof(IFX_IDRES));
if(Ifx_blob==NULL) {
@@ -2972,7 +2943,7 @@ PHP_FUNCTION(ifx_copy_blob)
}
convert_to_long(pbid);
- newid=php_intifx_copy_blob(Z_LVAL_P(pbid),&EG(regular_list));
+ newid=php_intifx_copy_blob(Z_LVAL_P(pbid),&EG(regular_list) TSRMLS_CC);
if(newid<0) {
RETURN_FALSE;
}
@@ -2991,12 +2962,11 @@ PHP_FUNCTION(ifx_copy_blob)
* return -1 on error otherwise the new Blob-Object-id
* ----------------------------------------------------------------------
*/
-static long php_intifx_copy_blob(long bid, HashTable *list)
+static long php_intifx_copy_blob(long bid, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_blob, *Ifx_blob_orig;
loc_t *locator, *locator_orig;
int type;
- IFXLS_FETCH();
Ifx_blob_orig = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || !(Ifx_blob_orig->type==TYPE_BLBYTE || Ifx_blob_orig->type==TYPE_BLTEXT)) {
@@ -3075,7 +3045,7 @@ PHP_FUNCTION(ifx_free_blob)
}
convert_to_long(pid);
- ret=php_intifx_free_blob(pid->value.lval,&EG(regular_list));
+ ret=php_intifx_free_blob(pid->value.lval,&EG(regular_list) TSRMLS_CC);
if(ret<0) {
RETURN_FALSE;
}
@@ -3095,11 +3065,10 @@ PHP_FUNCTION(ifx_free_blob)
* FREES BYTE-MEMORY WITH EFREE()
* ----------------------------------------------------------------------
*/
-static long php_intifx_free_blob(long bid, HashTable *list)
+static long php_intifx_free_blob(long bid, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_blob;
int type;
- IFXLS_FETCH();
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
@@ -3134,11 +3103,10 @@ static long php_intifx_free_blob(long bid, HashTable *list)
* use this for freeing blob-source after select (in ifx_free_result)
* ----------------------------------------------------------------------
*/
-static long php_intifx2_free_blob(long bid, HashTable *list)
+static long php_intifx2_free_blob(long bid, HashTable *list TSRMLS_DC)
{
- IFX_IDRES *Ifx_blob;
+ IFX_IDRES *Ifx_blob;
int type;
- IFXLS_FETCH();
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
@@ -3188,7 +3156,7 @@ PHP_FUNCTION(ifx_get_blob)
}
convert_to_long(pbid);
- len=php_intifx_get_blob(pbid->value.lval,&EG(regular_list),&content);
+ len=php_intifx_get_blob(pbid->value.lval,&EG(regular_list),&content TSRMLS_CC);
if(content==NULL || len<0) {
RETURN_STRING(php_intifx_null(),1);
}
@@ -3208,11 +3176,10 @@ PHP_FUNCTION(ifx_get_blob)
* returns the pointer to the content in char** content and the amount of content in bytes
* ----------------------------------------------------------------------
*/
-static long php_intifx_get_blob(long bid, HashTable *list, char** content)
+static long php_intifx_get_blob(long bid, HashTable *list, char** content TSRMLS_DC)
{
IFX_IDRES *Ifx_blob;
int type;
- IFXLS_FETCH();
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
@@ -3238,11 +3205,10 @@ static long php_intifx_get_blob(long bid, HashTable *list, char** content)
* return NULL on error or the pointer to the locator-structur
* ----------------------------------------------------------------------
*/
-static loc_t *php_intifx_get_blobloc(long bid, HashTable *list)
+static loc_t *php_intifx_get_blobloc(long bid, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_blob;
int type;
- IFXLS_FETCH();
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
@@ -3276,7 +3242,7 @@ PHP_FUNCTION(ifx_update_blob)
convert_to_long(pbid);
convert_to_string(pparam);
- if(php_intifx_update_blob(Z_LVAL_P(pbid),Z_STRVAL_P(pparam),Z_STRLEN_P(pparam), &EG(regular_list)) < 0) {
+ if(php_intifx_update_blob(Z_LVAL_P(pbid),Z_STRVAL_P(pparam),Z_STRLEN_P(pparam), &EG(regular_list) TSRMLS_CC) < 0) {
RETURN_FALSE;
}
RETURN_TRUE;
@@ -3295,11 +3261,10 @@ PHP_FUNCTION(ifx_update_blob)
* return nothing
* ----------------------------------------------------------------------
*/
-static long php_intifx_update_blob(long bid, char* param, long len, HashTable *list)
+static long php_intifx_update_blob(long bid, char* param, long len, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_blob;
int type;
- IFXLS_FETCH();
Ifx_blob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_blob->type==TYPE_BLTEXT || Ifx_blob->type==TYPE_BLBYTE)) {
@@ -3391,7 +3356,6 @@ static char* php_intifx_create_tmpfile(long bid)
PHP_FUNCTION(ifx_blobinfile_mode)
{
zval *pmode;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &pmode)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -3418,7 +3382,6 @@ PHP_FUNCTION(ifx_blobinfile_mode)
PHP_FUNCTION(ifx_textasvarchar)
{
zval *pmode;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &pmode)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -3445,7 +3408,6 @@ PHP_FUNCTION(ifx_textasvarchar)
PHP_FUNCTION(ifx_byteasvarchar)
{
zval *pmode;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &pmode)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -3471,7 +3433,6 @@ PHP_FUNCTION(ifx_byteasvarchar)
PHP_FUNCTION(ifx_nullformat)
{
zval *pmode;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &pmode)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -3494,8 +3455,8 @@ PHP_FUNCTION(ifx_nullformat)
static char* php_intifx_null()
{
char* tmp;
- IFXLS_FETCH();
-
+ TSRMLS_FETCH();
+
if(IFXG(nullformat)==0) {
tmp=IFXG(nullvalue);
} else {
@@ -3548,7 +3509,6 @@ PHP_FUNCTION(ifx_create_char)
static long php_intifx_create_char(char* param, long len, HashTable *list)
{
IFX_IDRES *Ifx_char;
- IFXLS_FETCH();
Ifx_char=emalloc(sizeof(IFX_IDRES));
if(Ifx_char==NULL) {
@@ -3597,7 +3557,7 @@ PHP_FUNCTION(ifx_get_char)
}
convert_to_long(pbid);
- len=php_intifx_get_char(Z_LVAL_P(pbid),&EG(regular_list),&content);
+ len=php_intifx_get_char(Z_LVAL_P(pbid),&EG(regular_list),&content TSRMLS_CC);
if(content==NULL || len < 0) {
RETURN_STRING("",1);
}
@@ -3617,11 +3577,10 @@ PHP_FUNCTION(ifx_get_char)
* returns the pointer to the content in char** content and the amount of content in bytes
* ----------------------------------------------------------------------
*/
-static long php_intifx_get_char(long bid, HashTable *list, char** content)
+static long php_intifx_get_char(long bid, HashTable *list, char** content TSRMLS_DC)
{
IFX_IDRES *Ifx_char;
int type;
- IFXLS_FETCH();
Ifx_char = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_char->type==TYPE_CHAR)) {
@@ -3653,7 +3612,7 @@ PHP_FUNCTION(ifx_free_char)
}
convert_to_long(pid);
- if(php_intifx_free_char(Z_LVAL_P(pid),&EG(regular_list)) < 0) {
+ if(php_intifx_free_char(Z_LVAL_P(pid),&EG(regular_list) TSRMLS_CC) < 0) {
RETURN_FALSE;
}
RETURN_TRUE;
@@ -3671,11 +3630,10 @@ PHP_FUNCTION(ifx_free_char)
* return -1 on error otherwise 0
* ----------------------------------------------------------------------
*/
-static long php_intifx_free_char(long bid, HashTable *list)
+static long php_intifx_free_char(long bid, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_char;
int type;
- IFXLS_FETCH();
Ifx_char = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_char->type==TYPE_CHAR)) {
@@ -3713,7 +3671,7 @@ PHP_FUNCTION(ifx_update_char)
convert_to_long(pbid);
convert_to_string(pparam);
- if(php_intifx_update_char(Z_LVAL_P(pbid),Z_STRVAL_P(pparam),Z_STRLEN_P(pparam),&EG(regular_list)) < 0) {
+ if(php_intifx_update_char(Z_LVAL_P(pbid),Z_STRVAL_P(pparam),Z_STRLEN_P(pparam),&EG(regular_list) TSRMLS_CC) < 0) {
RETURN_FALSE;
}
RETURN_TRUE;
@@ -3732,11 +3690,10 @@ PHP_FUNCTION(ifx_update_char)
* return nothing
* ----------------------------------------------------------------------
*/
-static long php_intifx_update_char(long bid, char* param, long len, HashTable *list)
+static long php_intifx_update_char(long bid, char* param, long len, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_char;
int type;
- IFXLS_FETCH();
Ifx_char = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult && !(Ifx_char->type==TYPE_CHAR)) {
@@ -3870,7 +3827,7 @@ PHP_FUNCTION(ifxus_free_slob)
}
convert_to_long(pid);
- if(php_intifxus_free_slob(Z_LVAL_P(pid),&EG(regular_list)) < 0) {
+ if(php_intifxus_free_slob(Z_LVAL_P(pid),&EG(regular_list) TSRMLS_CC) < 0) {
RETURN_FALSE;
}
RETURN_TRUE;
@@ -3888,12 +3845,10 @@ PHP_FUNCTION(ifxus_free_slob)
* return -1 on error otherwise 0
* ----------------------------------------------------------------------
*/
-static long php_intifxus_free_slob(long bid, HashTable *list)
+static long php_intifxus_free_slob(long bid, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_slob;
int type;
- IFXLS_FETCH();
- TSRMLS_FETCH();
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
@@ -3901,7 +3856,7 @@ static long php_intifxus_free_slob(long bid, HashTable *list)
return -1;
}
- if(php_intifxus_close_slob(bid, &EG(regular_list)) < 0) {
+ if(php_intifxus_close_slob(bid, &EG(regular_list) TSRMLS_CC) < 0) {
return -1;
}
@@ -3933,7 +3888,7 @@ PHP_FUNCTION(ifxus_close_slob)
WRONG_PARAM_COUNT;
}
convert_to_long(pid);
- if(php_intifxus_close_slob(Z_LVAL_P(pid),&EG(regular_list)) < 0) {
+ if(php_intifxus_close_slob(Z_LVAL_P(pid),&EG(regular_list) TSRMLS_CC) < 0) {
RETURN_FALSE;
}
RETURN_TRUE;
@@ -3951,11 +3906,10 @@ PHP_FUNCTION(ifxus_close_slob)
* return -1 on error otherwise 0
* ----------------------------------------------------------------------
*/
-static long php_intifxus_close_slob(long bid, HashTable *list)
+static long php_intifxus_close_slob(long bid, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_slob;
int type;
- IFXLS_FETCH();
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
@@ -4014,7 +3968,7 @@ PHP_FUNCTION(ifxus_open_slob)
if((mode&32) !=0)
create_mode|=LO_NOBUFFER;
- RETURN_LONG(php_intifxus_open_slob(Z_LVAL_P(pbid),create_mode,&EG(regular_list)));
+ RETURN_LONG(php_intifxus_open_slob(Z_LVAL_P(pbid),create_mode,&EG(regular_list) TSRMLS_CC));
}
/* }}} */
@@ -4029,12 +3983,11 @@ PHP_FUNCTION(ifxus_open_slob)
* return -1 on error otherwise the new Blob-Object-id
* ----------------------------------------------------------------------
*/
-static long php_intifxus_open_slob(long bid, long create_mode, HashTable *list)
+static long php_intifxus_open_slob(long bid, long create_mode, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_slob;
int errcode;
int type;
- IFXLS_FETCH();
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
@@ -4067,7 +4020,6 @@ static long php_intifxus_open_slob(long bid, long create_mode, HashTable *list)
static long php_intifxus_new_slob(HashTable *list)
{
IFX_IDRES *Ifx_slob;
- IFXLS_FETCH();
Ifx_slob=emalloc(sizeof(IFX_IDRES));
if(Ifx_slob==NULL) {
@@ -4090,11 +4042,10 @@ static long php_intifxus_new_slob(HashTable *list)
* return -1 on error otherwise the new Blob-Object-id
* ----------------------------------------------------------------------
*/
-static ifx_lo_t *php_intifxus_get_slobloc(long bid, HashTable *list)
+static ifx_lo_t *php_intifxus_get_slobloc(long bid, HashTable *list TSRMLS_DC)
{
IFX_IDRES *Ifx_slob;
int type;
- IFXLS_FETCH();
Ifx_slob = (IFX_IDRES *) zend_list_find(bid,&type);
if (type!=le_idresult || Ifx_slob->type!=TYPE_SLOB) {
@@ -4123,7 +4074,6 @@ PHP_FUNCTION(ifxus_tell_slob)
ifx_int8_t akt_seek_pos;
int type;
long lakt_seek_pos;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS()!=1 || getParameters(ht, 1, &pbid)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -4170,7 +4120,6 @@ PHP_FUNCTION(ifxus_seek_slob)
IFX_IDRES *Ifx_slob;
ifx_int8_t akt_seek_pos,offset;
int type,mode;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS()!=3 || getParameters(ht, 3, &pbid, &pmode, &poffset)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -4227,7 +4176,6 @@ PHP_FUNCTION(ifxus_read_slob)
IFX_IDRES *Ifx_slob;
int errcode,type;
char *buffer;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS()!=2 || getParameters(ht, 2, &pbid, &pnbytes)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -4272,7 +4220,6 @@ PHP_FUNCTION(ifxus_write_slob)
IFX_IDRES *Ifx_slob;
int errcode,type;
char *buffer;
- IFXLS_FETCH();
if (ZEND_NUM_ARGS()!=2 || getParameters(ht, 2, &pbid, &pcontent)==FAILURE) {
WRONG_PARAM_COUNT;
diff --git a/ext/informix/php_informix.h b/ext/informix/php_informix.h
index caf693684c..f693aef570 100644
--- a/ext/informix/php_informix.h
+++ b/ext/informix/php_informix.h
@@ -118,19 +118,9 @@ ZEND_BEGIN_MODULE_GLOBALS(ifx)
ZEND_END_MODULE_GLOBALS(ifx)
#ifdef ZTS
-# define IFXLS_D zend_ifx_globals *ifx_globals
-# define IFXLS_DC , IFXLS_D
-# define IFXLS_C ifx_globals
-# define IFXLS_CC , IFXLS_C
-# define IFXG(v) (ifx_globals->v)
-# define IFXLS_FETCH() zend_ifx_globals *ifx_globals = ts_resource(ifx_globals_id)
+# define IFXG(v) TSRMG(ifx_globals_id, zend_ifx_globals *, v)
#else
-# define IFXLS_D
-# define IFXLS_DC
-# define IFXLS_C
-# define IFXLS_CC
# define IFXG(v) (ifx_globals.v)
-# define IFXLS_FETCH()
#endif
#define MAX_RESID 64