fix typecasting errors, especially for new constants. Don't assume long and int are the same size, as on 64bit architectures, they are normally not

This commit is contained in:
Brad House 2003-07-09 13:45:21 +00:00
parent 6da86c7e93
commit 6995520e20

View File

@ -588,7 +588,6 @@ PHP_FUNCTION(mcve_setssl)
*/ */
PHP_FUNCTION(mcve_setssl_files) PHP_FUNCTION(mcve_setssl_files)
{ {
MCVE_CONN *conn;
int retval; int retval;
zval **arg1, **arg2; zval **arg1, **arg2;
@ -841,29 +840,53 @@ PHP_FUNCTION(mcve_transparam)
convert_to_long_ex(arg2); convert_to_long_ex(arg2);
switch (key) { switch (key) {
case MC_TRANTYPE: /* Typecast to MCVE_int64 */
case MC_PTRANNUM:
case MC_TTID: case MC_TTID:
case MC_ADMIN:
case MC_AUDITTYPE:
convert_to_long_ex(arg4); convert_to_long_ex(arg4);
retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_LVAL_PP(arg4)); retval = MCVE_TransParam(conn, (long)Z_LVAL_PP(arg2), key, (MCVE_int64)Z_LVAL_PP(arg4));
break; break;
/* Typecast to long */
case MC_PTRANNUM:
case MC_TIMESTAMP:
case MC_MARKER:
convert_to_long_ex(arg4);
retval = MCVE_TransParam(conn, (long)Z_LVAL_PP(arg2), key, (long)Z_LVAL_PP(arg4));
break;
/* Typecast to int */
case MC_ADMIN:
case MC_SUB:
case MC_TRANTYPE:
case MC_AUDITTYPE:
case MC_EXCHARGES:
case MC_INQUIRY:
case MC_PRIORITY:
case MC_CARDTYPES:
case MC_ORIGTYPE:
case MC_VOIDORIGTYPE:
convert_to_long_ex(arg4);
retval = MCVE_TransParam(conn, (long)Z_LVAL_PP(arg2), key, (int)Z_LVAL_PP(arg4));
break;
/* Typecast to double */
case MC_AMOUNT: case MC_AMOUNT:
case MC_EXAMOUNT:
case MC_RATE:
convert_to_double_ex(arg4); convert_to_double_ex(arg4);
retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_DVAL_PP(arg4)); retval = MCVE_TransParam(conn, (long)Z_LVAL_PP(arg2), key, (double)Z_DVAL_PP(arg4));
break; break;
case MC_CUSTOM: case MC_CUSTOM:
convert_to_string_ex(arg4); convert_to_string_ex(arg4);
convert_to_string_ex(arg5); convert_to_string_ex(arg5);
retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_STRVAL_PP(arg4), Z_STRVAL_PP(arg5)); retval = MCVE_TransParam(conn, (long)Z_LVAL_PP(arg2), key, Z_STRVAL_PP(arg4), Z_STRVAL_PP(arg5));
break; break;
default: default:
convert_to_string_ex(arg4); convert_to_string_ex(arg4);
retval = MCVE_TransParam(conn, Z_LVAL_PP(arg2), key, Z_STRVAL_PP(arg4)); retval = MCVE_TransParam(conn, (long)Z_LVAL_PP(arg2), key, Z_STRVAL_PP(arg4));
break; break;
} }