mirror of
https://github.com/fluencelabs/sqlite
synced 2025-04-24 17:02:14 +00:00
more changes
This commit is contained in:
parent
38fb596f7c
commit
af0ac14818
2
Makefile
2
Makefile
@ -29,7 +29,7 @@ EXPORT_FUNCS = \
|
||||
--export=sqlite3_bind_blob_,$\
|
||||
--export=sqlite3_bind_double,$\
|
||||
--export=sqlite3_bind_int64,$\
|
||||
--export=sqlite3_bind_text_,$\
|
||||
--export=sqlite3_bind_text,$\
|
||||
--export=sqlite3_bind_null,$\
|
||||
--export=sqlite3_column_count,$\
|
||||
--export=sqlite3_column_double,$\
|
||||
|
@ -35,15 +35,12 @@ void sqlite3_exec_(
|
||||
sqlite3_callback xCallback, /* Invoke this callback routine */
|
||||
void *pArg /* First argument to xCallback() */
|
||||
) __EXPORT_NAME(sqlite3_exec) {
|
||||
char *new_zSql = (char *) malloc(zSql_len + 1);
|
||||
memcpy(new_zSql, zSql, zSql_len);
|
||||
new_zSql[zSql_len] = 0;
|
||||
free((void *)zSql);
|
||||
zSql[zSql_len] = '\x00';
|
||||
|
||||
char *pzErrMsg = 0;
|
||||
const int ret_code = sqlite3_exec(db, new_zSql, xCallback, pArg, &pzErrMsg);
|
||||
|
||||
free(new_zSql);
|
||||
free(zSql);
|
||||
int *result = malloc(3*8);
|
||||
result[0] = ret_code;
|
||||
result[1] = 0;
|
||||
@ -52,6 +49,7 @@ void sqlite3_exec_(
|
||||
result[4] = strlen(pzErrMsg);
|
||||
result[5] = 0;
|
||||
|
||||
add_object_to_release((void *) result);
|
||||
set_result_ptr((char *)result);
|
||||
}
|
||||
|
||||
|
@ -2452,6 +2452,7 @@ int sqlite3TempInMemory(const sqlite3 *db){
|
||||
void sqlite3_errmsg_(sqlite3 *db) __EXPORT_NAME(sqlite3_errmsg) {
|
||||
const char *result = sqlite3_errmsg(db);
|
||||
|
||||
add_object_to_release((void *) result);
|
||||
set_result_ptr((char *)result);
|
||||
set_result_size(strlen(result));
|
||||
}
|
||||
@ -3458,6 +3459,7 @@ void sqlite3_open_v2_(
|
||||
result[0] = ret_code;
|
||||
result[2] = (int)ppDb;
|
||||
|
||||
add_object_to_release((void *) result);
|
||||
set_result_ptr((char *)result);
|
||||
}
|
||||
|
||||
|
@ -1113,10 +1113,7 @@ void sqlite3_column_blob_(sqlite3_stmt *pStmt, int i) __EXPORT_NAME(sqlite3_colu
|
||||
const char *blob = sqlite3_column_blob(pStmt, i);
|
||||
int blob_len = sqlite3_column_bytes(pStmt, i);
|
||||
|
||||
unsigned char *copied_result = malloc(blob_len);
|
||||
memcpy(copied_result, blob, blob_len);
|
||||
|
||||
set_result_ptr((char *)copied_result);
|
||||
set_result_ptr((char *)blob);
|
||||
set_result_size(blob_len);
|
||||
}
|
||||
|
||||
@ -1160,10 +1157,7 @@ void sqlite3_column_text_(sqlite3_stmt *pStmt, int i) __EXPORT_NAME(sqlite3_colu
|
||||
const unsigned char *text = sqlite3_column_text(pStmt, i);
|
||||
const unsigned int text_len = sqlite3_column_bytes(pStmt, i);
|
||||
|
||||
unsigned char *copied_text = malloc(text_len);
|
||||
memcpy(copied_text, text, text_len);
|
||||
|
||||
set_result_ptr((char *)copied_text);
|
||||
set_result_ptr((char *)text);
|
||||
set_result_size(text_len);
|
||||
}
|
||||
|
||||
@ -1262,6 +1256,7 @@ static const void *columnName(
|
||||
void sqlite3_column_name_(sqlite3_stmt *pStmt, int N) __EXPORT_NAME(sqlite3_column_name) {
|
||||
const char *result = sqlite3_column_name(pStmt, N);
|
||||
|
||||
add_object_to_release((void *) result);
|
||||
set_result_ptr((char *)result);
|
||||
set_result_size(strlen(result));
|
||||
}
|
||||
@ -1456,6 +1451,7 @@ int sqlite3_bind_blob_(
|
||||
for (int char_id = 0; char_id < copied_nData; ++char_id) {
|
||||
copied_zData[char_id] = zData[char_id * 8];
|
||||
}
|
||||
free(zData);
|
||||
|
||||
const int result = sqlite3_bind_blob(pStmt, i, copied_zData, copied_nData, 0);
|
||||
|
||||
@ -1539,21 +1535,6 @@ int sqlite3_bind_pointer(
|
||||
return rc;
|
||||
}
|
||||
|
||||
int sqlite3_bind_text_(
|
||||
sqlite3_stmt *pStmt,
|
||||
int i,
|
||||
const char *zData,
|
||||
int nData,
|
||||
void (*xDel)(void*)
|
||||
) __EXPORT_NAME(sqlite3_bind_text) {
|
||||
char *copied_zData = malloc(nData);
|
||||
memcpy(copied_zData, zData, nData);
|
||||
|
||||
const int result = sqlite3_bind_text(pStmt, i, copied_zData, nData, xDel);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
int sqlite3_bind_text(
|
||||
sqlite3_stmt *pStmt,
|
||||
int i,
|
||||
|
@ -19,7 +19,7 @@ void release_objects() {
|
||||
OBJECTS_TO_RELEASE_COUNT = 0;
|
||||
}
|
||||
|
||||
void add_object_to_release(void *) {
|
||||
void add_object_to_release(void *object) {
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user