mirror of
https://github.com/fluencelabs/sqlite
synced 2025-04-24 17:02:14 +00:00
some updates
This commit is contained in:
parent
0820036f56
commit
2150b81cf6
@ -41,6 +41,7 @@ void sqlite3_exec_(
|
||||
const int ret_code = sqlite3_exec(db, zSql, xCallback, pArg, &pzErrMsg);
|
||||
|
||||
free(zSql);
|
||||
|
||||
int *result = malloc(3*8);
|
||||
result[0] = ret_code;
|
||||
result[1] = 0;
|
||||
@ -49,8 +50,10 @@ void sqlite3_exec_(
|
||||
result[4] = strlen(pzErrMsg);
|
||||
result[5] = 0;
|
||||
|
||||
// errmsg should be managed by user
|
||||
add_object_to_release((void *) pzErrMsg);
|
||||
add_object_to_release((void *) result);
|
||||
set_result_ptr((char *)result);
|
||||
set_result_ptr((void *) result);
|
||||
}
|
||||
|
||||
int sqlite3_exec(
|
||||
|
@ -2452,8 +2452,8 @@ 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);
|
||||
// result is managed by SQLite itself
|
||||
set_result_ptr((void *) result);
|
||||
set_result_size(strlen(result));
|
||||
}
|
||||
|
||||
@ -3460,7 +3460,7 @@ void sqlite3_open_v2_(
|
||||
result[2] = (int)ppDb;
|
||||
|
||||
add_object_to_release((void *) result);
|
||||
set_result_ptr((char *)result);
|
||||
set_result_ptr((void *)result);
|
||||
}
|
||||
|
||||
int sqlite3_open_v2(
|
||||
|
@ -788,11 +788,11 @@ void sqlite3_prepare_v2_(
|
||||
const char *zSql, /* UTF-8 encoded SQL statement. */
|
||||
int nBytes /* Length of zSql in bytes. */
|
||||
) __EXPORT_NAME(sqlite3_prepare_v2) {
|
||||
sqlite3_stmt *ppStmt;
|
||||
const char *pzTail;
|
||||
sqlite3_stmt *ppStmt = NULL;
|
||||
const char *pzTail = NULL;
|
||||
|
||||
const int ret_code = sqlite3_prepare_v2(db, zSql, nBytes, &ppStmt, &pzTail);
|
||||
free((void *)zSql);
|
||||
free((void *) zSql);
|
||||
|
||||
int *result = (int *)malloc(3*8);
|
||||
result[0] = ret_code;
|
||||
@ -800,7 +800,8 @@ void sqlite3_prepare_v2_(
|
||||
result[4] = (int)pzTail;
|
||||
result[5] = strlen(pzTail);
|
||||
|
||||
set_result_ptr((char *)result);
|
||||
add_object_to_release((void *) result);
|
||||
set_result_ptr((void *) result);
|
||||
}
|
||||
|
||||
int sqlite3_prepare_v2(
|
||||
|
@ -37,9 +37,6 @@
|
||||
#define __EXPORT_NAME(name) \
|
||||
__attribute__((export_name(#name)))
|
||||
|
||||
void set_result_ptr(const char *ptr);
|
||||
void set_result_size(int size);
|
||||
|
||||
/*
|
||||
** Make sure we can call this stuff from C++.
|
||||
*/
|
||||
|
@ -4911,7 +4911,7 @@ const char **sqlite3CompileOptions(int *pnOpt);
|
||||
#ifndef __sqlite_unmodified_upstram
|
||||
void add_object_to_release(void *object);
|
||||
|
||||
void set_result_ptr(const char *ptr);
|
||||
void set_result_ptr(void *ptr);
|
||||
void set_result_size(int size);
|
||||
#endif
|
||||
|
||||
|
@ -1113,7 +1113,8 @@ 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);
|
||||
|
||||
set_result_ptr((char *)blob);
|
||||
// blob is managed by SQLite itself
|
||||
set_result_ptr((void *)blob);
|
||||
set_result_size(blob_len);
|
||||
}
|
||||
|
||||
@ -1157,7 +1158,8 @@ 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);
|
||||
|
||||
set_result_ptr((char *)text);
|
||||
// test is managed by SQLite itself
|
||||
set_result_ptr((void *) text);
|
||||
set_result_size(text_len);
|
||||
}
|
||||
|
||||
@ -1256,8 +1258,8 @@ 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);
|
||||
// result is managed by SQLite itself
|
||||
set_result_ptr((void *)result);
|
||||
set_result_size(strlen(result));
|
||||
}
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
const char *RESULT_PTR;
|
||||
void *RESULT_PTR;
|
||||
int RESULT_SIZE;
|
||||
|
||||
cvector_vector_type(void *) OBJECTS_TO_RELEASE;
|
||||
@ -27,7 +27,7 @@ void add_object_to_release(void *object) {
|
||||
cvector_push_back(OBJECTS_TO_RELEASE, object);
|
||||
}
|
||||
|
||||
void set_result_ptr(const char *ptr) {
|
||||
void set_result_ptr(void *ptr) {
|
||||
RESULT_PTR = ptr;
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ int get_result_size(void) {
|
||||
return RESULT_SIZE;
|
||||
}
|
||||
|
||||
const char *get_result_ptr() {
|
||||
void *get_result_ptr() {
|
||||
return RESULT_PTR;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user