Skip to content

Commit 0c2156d

Browse files
committed
avoid unneeded copying
1 parent a67b894 commit 0c2156d

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

ext/odbc/php_odbc.c

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -876,9 +876,7 @@ PHP_MINFO_FUNCTION(odbc)
876876
/* {{{ odbc_sql_error */
877877
void odbc_sql_error(ODBC_SQL_ERROR_PARAMS)
878878
{
879-
char state[6];
880879
SQLINTEGER error; /* Not used */
881-
char errormsg[SQL_MAX_MESSAGE_LENGTH];
882880
SQLSMALLINT errormsgsize; /* Not used */
883881
RETCODE rc;
884882
ODBC_SQL_ENV_T henv;
@@ -897,21 +895,19 @@ void odbc_sql_error(ODBC_SQL_ERROR_PARAMS)
897895
while(henv != SQL_NULL_HENV){
898896
do {
899897
*/
900-
rc = SQLError(henv, conn, stmt, state, &error, errormsg, sizeof(errormsg)-1, &errormsgsize);
898+
rc = SQLError(henv, conn, stmt, ODBCG(laststate), &error, ODBCG(lasterrormsg), sizeof(ODBCG(lasterrormsg))-1, &errormsgsize);
901899
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
902-
snprintf(state, sizeof(state), "HY000");
903-
snprintf(errormsg, sizeof(errormsg), "Failed to fetch error message");
900+
snprintf(ODBCG(laststate), sizeof(ODBCG(laststate)), "HY000");
901+
snprintf(ODBCG(lasterrormsg), sizeof(ODBCG(lasterrormsg)), "Failed to fetch error message");
904902
}
905903
if (conn_resource) {
906-
memcpy(conn_resource->laststate, state, sizeof(state));
907-
memcpy(conn_resource->lasterrormsg, errormsg, sizeof(errormsg));
904+
memcpy(conn_resource->laststate, ODBCG(laststate), sizeof(ODBCG(laststate)));
905+
memcpy(conn_resource->lasterrormsg, ODBCG(lasterrormsg), sizeof(ODBCG(lasterrormsg)));
908906
}
909-
memcpy(ODBCG(laststate), state, sizeof(state));
910-
memcpy(ODBCG(lasterrormsg), errormsg, sizeof(errormsg));
911907
if (func) {
912-
php_error_docref(NULL, E_WARNING, "SQL error: %s, SQL state %s in %s", errormsg, state, func);
908+
php_error_docref(NULL, E_WARNING, "SQL error: %s, SQL state %s in %s", ODBCG(lasterrormsg), ODBCG(laststate), func);
913909
} else {
914-
php_error_docref(NULL, E_WARNING, "SQL error: %s, SQL state %s", errormsg, state);
910+
php_error_docref(NULL, E_WARNING, "SQL error: %s, SQL state %s", ODBCG(lasterrormsg), ODBCG(laststate));
915911
}
916912
/*
917913
} while (SQL_SUCCEEDED(rc));

0 commit comments

Comments
 (0)