@@ -803,7 +803,7 @@ int sqlnum_test_from_str(SQLHANDLE Stmt,
803
803
SQLCHAR sign , SQLCHAR * expdata , int expnum ,
804
804
SQLRETURN overflow )
805
805
{
806
- SQL_NUMERIC_STRUCT * sqlnum = malloc (sizeof (SQL_NUMERIC_STRUCT ));
806
+ SQL_NUMERIC_STRUCT sqlnum ; /* = malloc(sizeof(SQL_NUMERIC_STRUCT));*/
807
807
SQLCHAR buf [512 ];
808
808
SQLHANDLE ard ;
809
809
unsigned long long numval ;
@@ -821,7 +821,7 @@ int sqlnum_test_from_str(SQLHANDLE Stmt,
821
821
CHECK_HANDLE_RC (SQL_HANDLE_DESC , ard , SQLSetDescField (ard , 1 , SQL_DESC_SCALE ,
822
822
(SQLPOINTER )(SQLLEN ) scale , SQL_IS_INTEGER ));
823
823
CHECK_HANDLE_RC (SQL_HANDLE_DESC , ard , SQLSetDescField (ard , 1 , SQL_DESC_DATA_PTR ,
824
- sqlnum , SQL_IS_POINTER ));
824
+ & sqlnum , SQL_IS_POINTER ));
825
825
if (overflow != SQL_SUCCESS )
826
826
{
827
827
EXPECT_STMT (Stmt , SQLFetch (Stmt ), overflow );
@@ -838,12 +838,12 @@ int sqlnum_test_from_str(SQLHANDLE Stmt,
838
838
else
839
839
CHECK_HANDLE_RC (SQL_HANDLE_STMT , Stmt , SQLFetch (Stmt ));
840
840
841
- is_num (sqlnum -> precision , prec );
842
- is_num (sqlnum -> scale , scale );
843
- is_num (sqlnum -> sign , sign );
841
+ is_num (sqlnum . precision , prec );
842
+ is_num (sqlnum . scale , scale );
843
+ is_num (sqlnum . sign , sign );
844
844
if (expdata )
845
845
{
846
- IS (!memcmp (sqlnum -> val , expdata , SQL_MAX_NUMERIC_LEN ));
846
+ IS (!memcmp (sqlnum . val , expdata , SQL_MAX_NUMERIC_LEN ));
847
847
}
848
848
else
849
849
{
@@ -853,7 +853,7 @@ int sqlnum_test_from_str(SQLHANDLE Stmt,
853
853
numval = 0 ;
854
854
for (i = 0 ; i < 8 ; ++ i )
855
855
{
856
- singleByte = sqlnum -> val [7 - i ];
856
+ singleByte = sqlnum . val [7 - i ];
857
857
numval += singleByte << (8 * (7 - i ));
858
858
}
859
859
if (numval != expnum )
@@ -863,7 +863,6 @@ int sqlnum_test_from_str(SQLHANDLE Stmt,
863
863
864
864
CHECK_HANDLE_RC (SQL_HANDLE_STMT , Stmt , SQLFreeStmt (Stmt , SQL_CLOSE ));
865
865
866
- free (sqlnum );
867
866
return OK ;
868
867
}
869
868
@@ -1037,7 +1036,7 @@ int sqlnum_test_to_str(SQLHANDLE Stmt, SQLCHAR* numdata, SQLCHAR prec,
1037
1036
SQLSCHAR scale , SQLCHAR sign , char * outstr ,
1038
1037
char * exptrunc )
1039
1038
{
1040
- SQL_NUMERIC_STRUCT * sqlnum = malloc ( sizeof ( SQL_NUMERIC_STRUCT )) ;
1039
+ SQL_NUMERIC_STRUCT sqlnum ;
1041
1040
SQLCHAR obuf [80 ]; /*1 sign + 39 + 1 dot + 38 + \0 */
1042
1041
SQLRETURN exprc = SQL_SUCCESS ;
1043
1042
SQLLEN len ;
@@ -1056,11 +1055,11 @@ int sqlnum_test_to_str(SQLHANDLE Stmt, SQLCHAR* numdata, SQLCHAR prec,
1056
1055
else if (!strcmp ("22003" , exptrunc ))
1057
1056
exprc = SQL_ERROR ;
1058
1057
1059
- sqlnum -> sign = sign ;
1060
- memcpy (sqlnum -> val , numdata , SQL_MAX_NUMERIC_LEN );
1058
+ sqlnum . sign = sign ;
1059
+ memcpy (sqlnum . val , numdata , SQL_MAX_NUMERIC_LEN );
1061
1060
1062
1061
EXPECT_STMT (Stmt , SQLBindParameter (Stmt , 1 , SQL_PARAM_INPUT , SQL_C_NUMERIC ,
1063
- SQL_DECIMAL , prec , scale , sqlnum , 0 , NULL ), scale > 38 ? SQL_SUCCESS_WITH_INFO : SQL_SUCCESS );
1062
+ SQL_DECIMAL , prec , scale , & sqlnum , 0 , NULL ), scale > 38 ? SQL_SUCCESS_WITH_INFO : SQL_SUCCESS );
1064
1063
1065
1064
EXPECT_STMT (Stmt , SQLExecDirect (Stmt , "SELECT ?" , SQL_NTS ), exprc );
1066
1065
@@ -1076,17 +1075,16 @@ int sqlnum_test_to_str(SQLHANDLE Stmt, SQLCHAR* numdata, SQLCHAR prec,
1076
1075
/* Error heere may occur on execution. Checking SQLFetch result is pretty useless */
1077
1076
CHECK_STMT_RC (Stmt , SQLFetch (Stmt ));
1078
1077
1079
- is_num (sqlnum -> precision , prec );
1080
- is_num (sqlnum -> scale , (scale > 38 ? 38 : scale ));
1081
- is_num (sqlnum -> sign , sign );
1078
+ is_num (sqlnum . precision , prec );
1079
+ is_num (sqlnum . scale , (scale > 38 ? 38 : scale ));
1080
+ is_num (sqlnum . sign , sign );
1082
1081
CHECK_HANDLE_RC (SQL_HANDLE_STMT , Stmt , SQLGetData (Stmt , 1 , SQL_C_CHAR , obuf , sizeof (obuf ), & len ));
1083
1082
IS_STR (obuf , outstr , len + 1 );
1084
1083
/* This is seemingly useless check */
1085
- FAIL_IF (memcmp (sqlnum -> val , numdata , SQL_MAX_NUMERIC_LEN ), "memcmp failed" );
1084
+ FAIL_IF (memcmp (sqlnum . val , numdata , SQL_MAX_NUMERIC_LEN ), "memcmp failed" );
1086
1085
1087
1086
CHECK_HANDLE_RC (SQL_HANDLE_STMT , Stmt , SQLFreeStmt (Stmt , SQL_CLOSE ));
1088
1087
1089
- free (sqlnum );
1090
1088
return OK ;
1091
1089
}
1092
1090
0 commit comments