From 22d1ae006826131e1d7fed9b0a3397fdb059c76f Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Tue, 21 Nov 2023 09:45:47 +0000 Subject: [PATCH] Tweaks. --- sqlite3/func.c | 2 +- sqlite3/include.h | 12 ++++++++++++ sqlite3/pointer.c | 2 +- sqlite3/time.c | 2 +- sqlite3/types.h | 7 ------- sqlite3/vfs.c | 2 +- sqlite3/vtab.c | 17 +++++++---------- 7 files changed, 23 insertions(+), 21 deletions(-) create mode 100644 sqlite3/include.h delete mode 100644 sqlite3/types.h diff --git a/sqlite3/func.c b/sqlite3/func.c index ce35292..573371f 100644 --- a/sqlite3/func.c +++ b/sqlite3/func.c @@ -1,7 +1,7 @@ #include +#include "include.h" #include "sqlite3.h" -#include "types.h" void go_func(sqlite3_context *, int, sqlite3_value **); void go_step(sqlite3_context *, int, sqlite3_value **); diff --git a/sqlite3/include.h b/sqlite3/include.h new file mode 100644 index 0000000..a5e3eed --- /dev/null +++ b/sqlite3/include.h @@ -0,0 +1,12 @@ +#pragma once + +#include +#include + +// https://github.com/JuliaLang/julia/blob/v1.9.4/src/julia.h#L67-L68 +#define container_of(ptr, type, member) \ + ((type *)((char *)(ptr)-offsetof(type, member))) + +typedef void *go_handle; +void go_destroy(go_handle); +static_assert(sizeof(go_handle) == 4, "Unexpected size"); \ No newline at end of file diff --git a/sqlite3/pointer.c b/sqlite3/pointer.c index c4a66c8..d08ac8f 100644 --- a/sqlite3/pointer.c +++ b/sqlite3/pointer.c @@ -1,6 +1,6 @@ +#include "include.h" #include "sqlite3.h" -#include "types.h" #define GO_POINTER_TYPE "github.com/ncruces/go-sqlite3.Pointer" diff --git a/sqlite3/time.c b/sqlite3/time.c index 44e40ca..35af30f 100644 --- a/sqlite3/time.c +++ b/sqlite3/time.c @@ -82,7 +82,7 @@ int sqlite3_time_init(sqlite3 *db, char **pzErrMsg, time_collation, /*destroy=*/NULL); sqlite3_create_function_v2( - db, "json_time", -1, + db, "json_time", /*nArg=*/-1, SQLITE_UTF8 | SQLITE_DETERMINISTIC | SQLITE_INNOCUOUS, /*arg=*/NULL, json_time_func, /*step=*/NULL, /*final=*/NULL, /*destroy=*/NULL); return SQLITE_OK; diff --git a/sqlite3/types.h b/sqlite3/types.h deleted file mode 100644 index d5e369f..0000000 --- a/sqlite3/types.h +++ /dev/null @@ -1,7 +0,0 @@ -#pragma once - -typedef void *go_handle; - -void go_destroy(go_handle); - -static_assert(sizeof(go_handle) == 4, "Unexpected size"); \ No newline at end of file diff --git a/sqlite3/vfs.c b/sqlite3/vfs.c index dc2b2ce..bb57faf 100644 --- a/sqlite3/vfs.c +++ b/sqlite3/vfs.c @@ -2,8 +2,8 @@ #include #include +#include "include.h" #include "sqlite3.h" -#include "types.h" int go_localtime(struct tm *, sqlite3_int64); int go_vfs_find(const char *zVfsName); diff --git a/sqlite3/vtab.c b/sqlite3/vtab.c index dccf1f1..f04f998 100644 --- a/sqlite3/vtab.c +++ b/sqlite3/vtab.c @@ -1,11 +1,7 @@ #include +#include "include.h" #include "sqlite3.h" -#include "types.h" - -// https://github.com/JuliaLang/julia/blob/v1.9.4/src/julia.h#L67-L68 -#define container_of(ptr, type, member) \ - ((type *)((char *)(ptr)-offsetof(type, member))) #define SQLITE_VTAB_CREATOR_GO /******/ 0x01 #define SQLITE_VTAB_DESTROYER_GO /****/ 0x02 @@ -67,7 +63,7 @@ struct go_cursor { }; static void go_mod_destroy(void *pAux) { - struct go_module *mod = (struct go_module *)pAux; + struct go_module *mod = pAux; void *handle = mod->handle; free(mod); go_destroy(handle); @@ -80,7 +76,7 @@ static int go_vtab_create_wrapper(sqlite3 *db, void *pAux, int argc, if (vtab == NULL) return SQLITE_NOMEM; *ppVTab = &vtab->base; - struct go_module *mod = (struct go_module *)pAux; + struct go_module *mod = pAux; int rc = go_vtab_create(&mod->base, argc, argv, ppVTab, pzErr); if (rc) { if (*pzErr) *pzErr = sqlite3_mprintf("%s", *pzErr); @@ -96,7 +92,7 @@ static int go_vtab_connect_wrapper(sqlite3 *db, void *pAux, int argc, if (vtab == NULL) return SQLITE_NOMEM; *ppVTab = &vtab->base; - struct go_module *mod = (struct go_module *)pAux; + struct go_module *mod = pAux; int rc = go_vtab_connect(&mod->base, argc, argv, ppVTab, pzErr); if (rc) { free(vtab); @@ -225,6 +221,7 @@ static_assert(offsetof(struct go_module, base) == 4, "Unexpected offset"); static_assert(offsetof(struct go_vtab, base) == 4, "Unexpected offset"); static_assert(offsetof(struct go_cursor, base) == 4, "Unexpected offset"); static_assert(sizeof(struct sqlite3_index_info) == 72, "Unexpected size"); +static_assert(sizeof(struct sqlite3_index_orderby) == 8, "Unexpected size"); static_assert(sizeof(struct sqlite3_index_constraint) == 12, "Unexpected size"); -static_assert(sizeof(struct sqlite3_index_constraint_usage) == 8, "Unexpected size"); -static_assert(sizeof(struct sqlite3_index_orderby) == 8, "Unexpected size"); \ No newline at end of file +static_assert(sizeof(struct sqlite3_index_constraint_usage) == 8, + "Unexpected size"); \ No newline at end of file