From d674159601b5d6b542e83b60b6c6529bb0c63967 Mon Sep 17 00:00:00 2001 From: Ard Biesheuvel Date: Tue, 2 Sep 2003 22:37:26 +0000 Subject: [PATCH] Nuke far pointers # Unfortunately, this does break compatibility with Windows 3.x :-) --- ext/interbase/interbase.c | 36 +++++++++++++++++------------------ ext/interbase/php_interbase.h | 9 ++++----- 2 files changed, 22 insertions(+), 23 deletions(-) diff --git a/ext/interbase/interbase.c b/ext/interbase/interbase.c index 96df641ea5..7ff197441a 100644 --- a/ext/interbase/interbase.c +++ b/ext/interbase/interbase.c @@ -1337,7 +1337,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_qu case SQL_TEXT: /* direct to variable */ case SQL_VARYING: convert_to_string(b_var); - var->sqldata = (void ISC_FAR *) Z_STRVAL_P(b_var); + var->sqldata = (void *) Z_STRVAL_P(b_var); var->sqllen = Z_STRLEN_P(b_var); var->sqltype = SQL_TEXT + (var->sqltype & 1); break; @@ -1348,7 +1348,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_qu return FAILURE; } buf[i].val.sval = (short) Z_LVAL_P(b_var); - var->sqldata = (void ISC_FAR *) (&buf[i].val.sval); + var->sqldata = (void *) (&buf[i].val.sval); break; case SQL_LONG: if (var->sqlscale < 0) { @@ -1358,22 +1358,22 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_qu handle it. */ convert_to_string(b_var); - var->sqldata = (void ISC_FAR *) Z_STRVAL_P(b_var); + var->sqldata = (void *) Z_STRVAL_P(b_var); var->sqllen = Z_STRLEN_P(b_var); var->sqltype = SQL_TEXT; } else { convert_to_long(b_var); - var->sqldata = (void ISC_FAR *) (&Z_LVAL_P(b_var)); + var->sqldata = (void *) (&Z_LVAL_P(b_var)); } break; case SQL_FLOAT: convert_to_double(b_var); buf[i].val.fval = (float) Z_DVAL_P(b_var); - var->sqldata = (void ISC_FAR *) (&buf[i].val.fval); + var->sqldata = (void *) (&buf[i].val.fval); break; case SQL_DOUBLE: /* direct to variable */ convert_to_double(b_var); - var->sqldata = (void ISC_FAR *) (&Z_DVAL_P(b_var)); + var->sqldata = (void *) (&Z_DVAL_P(b_var)); break; #ifdef SQL_INT64 case SQL_INT64: @@ -1383,7 +1383,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_qu to avoid rounding errors... */ convert_to_string(b_var); - var->sqldata = (void ISC_FAR *) Z_STRVAL_P(b_var); + var->sqldata = (void *) Z_STRVAL_P(b_var); var->sqllen = Z_STRLEN_P(b_var); var->sqltype = SQL_TEXT; break; @@ -1415,7 +1415,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_qu t.tm_year -= 1900; t.tm_mon--; isc_encode_date(&t, &buf[i].val.qval); - var->sqldata = (void ISC_FAR *) (&buf[i].val.qval); + var->sqldata = (void *) (&buf[i].val.qval); } #else /* @@ -1426,7 +1426,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_qu ask Sascha? */ convert_to_string(b_var); - var->sqldata = (void ISC_FAR *) Z_STRVAL_P(b_var); + var->sqldata = (void *) Z_STRVAL_P(b_var); var->sqllen = Z_STRLEN_P(b_var); var->sqltype = SQL_TEXT; #endif @@ -1438,23 +1438,23 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_qu #ifndef SQL_TIMESTAMP strptime(Z_STRVAL_P(b_var), IBG(timestampformat), &t); isc_encode_date(&t, &buf[i].val.qval); - var->sqldata = (void ISC_FAR *) (&buf[i].val.qval); + var->sqldata = (void *) (&buf[i].val.qval); #else switch (var->sqltype & ~1) { case SQL_TIMESTAMP: strptime(Z_STRVAL_P(b_var), IBG(timestampformat), &t); isc_encode_timestamp(&t, &buf[i].val.tsval); - var->sqldata = (void ISC_FAR *) (&buf[i].val.tsval); + var->sqldata = (void *) (&buf[i].val.tsval); break; case SQL_TYPE_DATE: strptime(Z_STRVAL_P(b_var), IBG(dateformat), &t); isc_encode_sql_date(&t, &buf[i].val.dtval); - var->sqldata = (void ISC_FAR *) (&buf[i].val.dtval); + var->sqldata = (void *) (&buf[i].val.dtval); break; case SQL_TYPE_TIME: strptime(Z_STRVAL_P(b_var), IBG(timeformat), &t); isc_encode_sql_time(&t, &buf[i].val.tmval); - var->sqldata = (void ISC_FAR *) (&buf[i].val.tmval); + var->sqldata = (void *) (&buf[i].val.tmval); break; } #endif @@ -1485,7 +1485,7 @@ static int _php_ibase_bind(XSQLDA *sqlda, zval **b_vars, BIND_BUF *buf, ibase_qu } buf[i].val.qval = ib_blob.bl_qd; } - var->sqldata = (void ISC_FAR *) &buf[i].val.qval; + var->sqldata = (void *) &buf[i].val.qval; break; case SQL_ARRAY: _php_ibase_module_error("Binding arrays not supported yet" TSRMLS_CC); @@ -2591,7 +2591,7 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type) unsigned short i; blob_handle.bl_handle = NULL; - blob_handle.bl_qd = *(ISC_QUAD ISC_FAR *) var->sqldata; + blob_handle.bl_qd = *(ISC_QUAD *) var->sqldata; if (isc_open_blob(IB_STATUS, &ib_result->link->handle, &ib_result->trans->handle, &blob_handle.bl_handle, &blob_handle.bl_qd)) { _php_ibase_error(TSRMLS_C); @@ -2637,13 +2637,13 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type) } } else { /* blob id only */ - ISC_QUAD bl_qd = *(ISC_QUAD ISC_FAR *) var->sqldata; + ISC_QUAD bl_qd = *(ISC_QUAD *) var->sqldata; ZVAL_STRINGL(&tmp,_php_ibase_quad_to_string(bl_qd), BLOB_ID_LEN, 0); } break; case SQL_ARRAY: { if (flag & PHP_IBASE_FETCH_ARRAYS) { /* array can be *huge* so only fetch if asked */ - ISC_QUAD ar_qd = *(ISC_QUAD ISC_FAR *) var->sqldata; + ISC_QUAD ar_qd = *(ISC_QUAD *) var->sqldata; ibase_array *ib_array = &ib_result->out_array[arr_cnt]; void *ar_data; char *tmp_ptr; @@ -2664,7 +2664,7 @@ static void _php_ibase_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int fetch_type) efree(ar_data); } else { /* blob id only */ - ISC_QUAD ar_qd = *(ISC_QUAD ISC_FAR *) var->sqldata; + ISC_QUAD ar_qd = *(ISC_QUAD *) var->sqldata; ZVAL_STRINGL(&tmp,_php_ibase_quad_to_string(ar_qd), BLOB_ID_LEN, 0); } } diff --git a/ext/interbase/php_interbase.h b/ext/interbase/php_interbase.h index e36648101c..165855c46e 100644 --- a/ext/interbase/php_interbase.h +++ b/ext/interbase/php_interbase.h @@ -132,7 +132,7 @@ typedef struct { ISC_ARRAY_DESC ar_desc; int el_type, /* sqltype kinda SQL_TEXT, ...*/ el_size; /* element size in bytes */ - ISC_LONG ISC_FAR ar_size; /* all array size in bytes */ + ISC_LONG ar_size; /* all array size in bytes */ } ibase_array; typedef struct { @@ -146,10 +146,9 @@ typedef struct { ibase_trans *trans; isc_stmt_handle stmt; unsigned short type; + unsigned char has_more_rows, statement_type; XSQLDA *out_sqlda; ibase_array *out_array; - unsigned char has_more_rows; - char statement_type; } ibase_result; typedef struct { @@ -163,12 +162,12 @@ typedef struct { unsigned short dialect; char statement_type; char *query; - int trans_res_id; + long trans_res_id; } ibase_query; typedef struct { ibase_db_link *link; - int link_res_id; + long link_res_id; ISC_LONG event_id; unsigned short event_count; char **events; -- 2.40.0