Formatting

This commit is contained in:
Alexey Romanov
2014-10-13 09:53:14 +04:00
parent a362be76cd
commit 47ef78b5ed
5 changed files with 207 additions and 214 deletions

View File

@@ -4,7 +4,7 @@
// MSVC needs "__inline" instead of "inline" in C-source files.
#if defined(_MSC_VER)
# define inline __inline
#define inline __inline
#endif
#ifdef DEBUG
@@ -75,8 +75,7 @@ static inline int sql_is_insert(const char *sql) {
int i;
char *insert = "insert";
for (i = 0; i < 6; i++) {
if ((tolower(sql[i]) != insert[i]) && (sql[i] != ' '))
return 0;
if ((tolower(sql[i]) != insert[i]) && (sql[i] != ' ')) { return 0; }
}
return 1;
}
@@ -204,29 +203,27 @@ static ErlDrvData start(ErlDrvPort port, char* cmd) {
// Driver Stop
static void stop(ErlDrvData handle) {
sqlite3_drv_t* driver_data = (sqlite3_drv_t*) handle;
sqlite3_drv_t* drv = (sqlite3_drv_t*) handle;
unsigned int i;
int close_result;
if (driver_data->prepared_stmts) {
for (i = 0; i < driver_data->prepared_count; i++) {
sqlite3_finalize(driver_data->prepared_stmts[i]);
if (drv->prepared_stmts) {
for (i = 0; i < drv->prepared_count; i++) {
sqlite3_finalize(drv->prepared_stmts[i]);
}
driver_free(driver_data->prepared_stmts);
driver_free(drv->prepared_stmts);
}
close_result = sqlite3_close(driver_data->db);
close_result = sqlite3_close(drv->db);
if (close_result != SQLITE_OK) {
//ERROR((driver_data->log,
// "ERROR: Failed to close DB, some resources aren't finalized!"));
fprintf(stderr, "ERROR: Failed to close DB, some resources aren't finalized!\n");
fprintf(stderr, "Failed to close DB %s, some resources aren't finalized!", sqlite3_db_filename(drv->db, "main"));
}
if (driver_data->log && (driver_data->log != stderr)) {
fclose(driver_data->log);
if (drv->log && (drv->log != stderr)) {
fclose(drv->log);
}
driver_free(driver_data);
driver_free(drv);
}
static inline int output_error(sqlite3_drv_t *drv, int error_code, const char *error);
@@ -235,46 +232,46 @@ static inline int output_error(sqlite3_drv_t *drv, int error_code, const char *e
static ErlDrvSSizeT control(
ErlDrvData drv_data, unsigned int command, char *buf,
ErlDrvSizeT len, char **rbuf, ErlDrvSizeT rlen) {
sqlite3_drv_t* driver_data = (sqlite3_drv_t*) drv_data;
sqlite3_drv_t* drv = (sqlite3_drv_t*) drv_data;
if (len > INT_MAX) {
output_error(driver_data, SQLITE_MISUSE, "Command size doesn't fit into int type");
output_error(drv, SQLITE_MISUSE, "Command size doesn't fit into int type");
} else {
switch (command) {
case CMD_SQL_EXEC:
sql_exec(driver_data, buf, (int) len);
sql_exec(drv, buf, (int) len);
break;
case CMD_SQL_BIND_AND_EXEC:
sql_bind_and_exec(driver_data, buf, (int) len);
sql_bind_and_exec(drv, buf, (int) len);
break;
case CMD_PREPARE:
prepare(driver_data, buf, (int) len);
prepare(drv, buf, (int) len);
break;
case CMD_PREPARED_BIND:
prepared_bind(driver_data, buf, (int) len);
prepared_bind(drv, buf, (int) len);
break;
case CMD_PREPARED_STEP:
prepared_step(driver_data, buf, (int) len);
prepared_step(drv, buf, (int) len);
break;
case CMD_PREPARED_RESET:
prepared_reset(driver_data, buf, (int) len);
prepared_reset(drv, buf, (int) len);
break;
case CMD_PREPARED_CLEAR_BINDINGS:
prepared_clear_bindings(driver_data, buf, (int) len);
prepared_clear_bindings(drv, buf, (int) len);
break;
case CMD_PREPARED_FINALIZE:
prepared_finalize(driver_data, buf, (int) len);
prepared_finalize(drv, buf, (int) len);
break;
case CMD_PREPARED_COLUMNS:
prepared_columns(driver_data, buf, (int) len);
prepared_columns(drv, buf, (int) len);
break;
case CMD_SQL_EXEC_SCRIPT:
sql_exec_script(driver_data, buf, (int) len);
sql_exec_script(drv, buf, (int) len);
break;
case CMD_ENABLE_LOAD_EXTENSION:
enable_load_extension(driver_data, buf, (int) len);
enable_load_extension(drv, buf, (int) len);
break;
default:
unknown(driver_data, buf, (int) len);
unknown(drv, buf, (int) len);
}
}
return 0;
@@ -464,8 +461,7 @@ static inline int decode_and_bind_param(
ei_decode_atom(buffer, p_index, char_buf_val);
if (strncmp(char_buf_val, "null", 5) == 0) {
result = sqlite3_bind_null(statement, param_index);
}
else {
} else {
output_error(drv, SQLITE_MISUSE, "Non-null atom as parameter");
return 1;
}
@@ -518,6 +514,7 @@ static int bind_parameters(
long param_index_long;
char param_name[MAXATOMLEN + 1]; // parameter names shouldn't be longer than 256!
char *acc_string;
result = ei_decode_list_header(buffer, p_index, &cur_list_size);
if (result) {
// probably all parameters are integers between 0 and 255
@@ -535,11 +532,13 @@ static int bind_parameters(
driver_free(acc_string);
return 0;
}
for (i = 0; i < cur_list_size; i++) {
if (*p_index >= buffer_size) {
return output_error(drv, SQLITE_ERROR,
"error while binding parameters");
}
ei_get_type(buffer, p_index, p_type, p_size);
if (*p_type == ERL_SMALL_TUPLE_EXT) {
int old_index = *p_index;
@@ -567,8 +566,7 @@ static int bind_parameters(
*p_index = old_index;
param_indices_are_explicit = 0;
goto IMPLICIT_INDEX; // yuck
}
else {
} else {
param_index = sqlite3_bind_parameter_index(statement, param_name);
}
break;
@@ -582,8 +580,7 @@ static int bind_parameters(
param_index = sqlite3_bind_parameter_index(statement, param_name);
break;
default:
return output_error(
drv, SQLITE_MISMATCH,
return output_error(drv, SQLITE_MISMATCH,
"parameter index must be given as integer, atom, or string");
}
result = decode_and_bind_param(
@@ -595,8 +592,7 @@ static int bind_parameters(
else {
IMPLICIT_INDEX:
if (param_indices_are_explicit) {
return output_error(
drv, SQLITE_MISUSE,
return output_error(drv, SQLITE_MISUSE,
"parameters without indices shouldn't follow indexed or named parameters");
}
@@ -842,8 +838,7 @@ static int sql_exec_one_statement(
}
static void sql_exec_async(void *_async_command) {
async_sqlite3_command *async_command =
(async_sqlite3_command *) _async_command;
async_sqlite3_command *async_command = (async_sqlite3_command *) _async_command;
sqlite3_stmt *statement = NULL;
int result;
@@ -906,8 +901,7 @@ static void sql_exec_async(void *_async_command) {
}
static void sql_step_async(void *_async_command) {
async_sqlite3_command *async_command =
(async_sqlite3_command *) _async_command;
async_sqlite3_command *async_command = (async_sqlite3_command *) _async_command;
int term_count = 0;
int term_allocated = 0;
ErlDrvTermData *dataset = NULL;
@@ -1024,8 +1018,7 @@ POPULATE_COMMAND:
}
static void ready_async(ErlDrvData drv_data, ErlDrvThreadData thread_data) {
async_sqlite3_command *async_command =
(async_sqlite3_command *) thread_data;
async_sqlite3_command *async_command = (async_sqlite3_command *) thread_data;
sqlite3_drv_t *drv = async_command->driver_data;
int res =
@@ -1270,7 +1263,7 @@ static int prepared_finalize(sqlite3_drv_t *drv, char *buffer, int buffer_size)
// Unknown Command
static int unknown(sqlite3_drv_t *drv, char *command, int command_size) {
// Return {Port, error, unknown_command}
// Return {Port, error, -1, unknown_command}
ErlDrvTermData spec[] = {
ERL_DRV_PORT, driver_mk_port(drv->port),
ERL_DRV_ATOM, drv->atom_error,