Fix warnings on Windows
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
#include "sqlite3_drv.h"
|
#include "sqlite3_drv.h"
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
// MSVC needs "__inline" instead of "inline" in C-source files.
|
// MSVC needs "__inline" instead of "inline" in C-source files.
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
@@ -171,47 +172,53 @@ static void stop(ErlDrvData handle) {
|
|||||||
driver_free(driver_data);
|
driver_free(driver_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int output_error(sqlite3_drv_t *drv, int error_code, const char *error);
|
||||||
|
|
||||||
// Handle input from Erlang VM
|
// Handle input from Erlang VM
|
||||||
static ErlDrvSSizeT control(
|
static ErlDrvSSizeT control(
|
||||||
ErlDrvData drv_data, unsigned int command, char *buf,
|
ErlDrvData drv_data, unsigned int command, char *buf,
|
||||||
ErlDrvSizeT len, char **rbuf, ErlDrvSizeT rlen) {
|
ErlDrvSizeT len, char **rbuf, ErlDrvSizeT rlen) {
|
||||||
sqlite3_drv_t* driver_data = (sqlite3_drv_t*) drv_data;
|
sqlite3_drv_t* driver_data = (sqlite3_drv_t*) drv_data;
|
||||||
switch (command) {
|
if (len > INT_MAX) {
|
||||||
case CMD_SQL_EXEC:
|
output_error(driver_data, SQLITE_MISUSE, "Command size doesn't fit into int type");
|
||||||
sql_exec(driver_data, buf, len);
|
} else {
|
||||||
break;
|
switch (command) {
|
||||||
case CMD_SQL_BIND_AND_EXEC:
|
case CMD_SQL_EXEC:
|
||||||
sql_bind_and_exec(driver_data, buf, len);
|
sql_exec(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_PREPARE:
|
case CMD_SQL_BIND_AND_EXEC:
|
||||||
prepare(driver_data, buf, len);
|
sql_bind_and_exec(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_PREPARED_BIND:
|
case CMD_PREPARE:
|
||||||
prepared_bind(driver_data, buf, len);
|
prepare(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_PREPARED_STEP:
|
case CMD_PREPARED_BIND:
|
||||||
prepared_step(driver_data, buf, len);
|
prepared_bind(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_PREPARED_RESET:
|
case CMD_PREPARED_STEP:
|
||||||
prepared_reset(driver_data, buf, len);
|
prepared_step(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_PREPARED_CLEAR_BINDINGS:
|
case CMD_PREPARED_RESET:
|
||||||
prepared_clear_bindings(driver_data, buf, len);
|
prepared_reset(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_PREPARED_FINALIZE:
|
case CMD_PREPARED_CLEAR_BINDINGS:
|
||||||
prepared_finalize(driver_data, buf, len);
|
prepared_clear_bindings(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_PREPARED_COLUMNS:
|
case CMD_PREPARED_FINALIZE:
|
||||||
prepared_columns(driver_data, buf, len);
|
prepared_finalize(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_SQL_EXEC_SCRIPT:
|
case CMD_PREPARED_COLUMNS:
|
||||||
sql_exec_script(driver_data, buf, len);
|
prepared_columns(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
case CMD_ENABLE_LOAD_EXTENSION:
|
case CMD_SQL_EXEC_SCRIPT:
|
||||||
enable_load_extension(driver_data, buf, len);
|
sql_exec_script(driver_data, buf, (int) len);
|
||||||
break;
|
break;
|
||||||
default:
|
case CMD_ENABLE_LOAD_EXTENSION:
|
||||||
unknown(driver_data, buf, len);
|
enable_load_extension(driver_data, buf, (int) len);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
unknown(driver_data, buf, (int) len);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#if defined(_MSC_VER)
|
#if defined(_MSC_VER)
|
||||||
#pragma warning(disable: 4201)
|
#pragma warning(disable: 4201)
|
||||||
|
#pragma warning(disable: 4127)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Path to file where data will be stored.
|
// Path to file where data will be stored.
|
||||||
|
|||||||
Reference in New Issue
Block a user