From: stephan Date: Sat, 30 Sep 2023 10:31:56 +0000 (+0000) Subject: Make all native JNI sqlite3_...() bindings package-private as a foot-shooting protect... X-Git-Tag: version-3.44.0~171^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fheads%2Fjni-ptr-passing;p=thirdparty%2Fsqlite.git Make all native JNI sqlite3_...() bindings package-private as a foot-shooting protective measure (higher-level pre-native-call argument validation is largely pending). Move SQLTester.java and TesterFts5.java into the org.sqlite.jni package so that they can access the being-tested methods. FossilOrigin-Name: ec82f7251acab7df40755ef5f456f36fe49b59e63a20be59bd610fc4280ba8cd --- diff --git a/ext/jni/GNUmakefile b/ext/jni/GNUmakefile index ddf97dd8ac..e1aa06091f 100644 --- a/ext/jni/GNUmakefile +++ b/ext/jni/GNUmakefile @@ -26,8 +26,8 @@ dir.src.c := $(dir.src)/c dir.bld := $(dir.jni)/bld dir.bld.c := $(dir.bld) dir.src.jni := $(dir.src)/org/sqlite/jni -dir.src.jni.tester := $(dir.src.jni)/tester dir.src.fts5 := $(dir.src.jni)/fts5 +dir.tests := $(dir.src)/tests mkdir ?= mkdir -p $(dir.bld.c): $(mkdir) $@ @@ -46,7 +46,7 @@ DISTCLEAN_FILES := $(dir.jni)/*~ $(dir.src.c)/*~ $(dir.src.jni)/*~ sqlite3-jni.h := $(dir.src.c)/sqlite3-jni.h .NOTPARALLEL: $(sqlite3-jni.h) SQLite3Jni.java := src/org/sqlite/jni/SQLite3Jni.java -SQLTester.java := src/org/sqlite/jni/tester/SQLTester.java +SQLTester.java := src/org/sqlite/jni/SQLTester.java SQLite3Jni.class := $(SQLite3Jni.java:.java=.class) SQLTester.class := $(SQLTester.java:.java=.class) @@ -61,8 +61,12 @@ SQLTester.class := $(SQLTester.java:.java=.class) # which the fts5 APIs have been stripped unless that feature is # intended to be stripped for good. enable.fts5 ?= 1 -# If enable.tester is 0, the org/sqlite/jni/tester/* bits are elided. -enable.tester ?= $(if $(wildcard $(dir.src.jni.tester)/SQLTester.java),1,0) + +ifeq (,$(wildcard $(dir.tests)/*)) + enable.tester := 0 +else + enable.tester := 1 +endif # bin.version-info = binary to output various sqlite3 version info # building the distribution zip file. @@ -112,6 +116,9 @@ JAVA_FILES.unittest := $(patsubst %,$(dir.src.jni)/%,\ Tester1.java \ ) ifeq (1,$(enable.fts5)) + JAVA_FILES.unittest += $(patsubst %,$(dir.src.jni)/%,\ + TesterFts5.java \ + ) JAVA_FILES.main += $(patsubst %,$(dir.src.fts5)/%,\ fts5_api.java \ fts5_extension_function.java \ @@ -121,11 +128,10 @@ ifeq (1,$(enable.fts5)) Fts5ExtensionApi.java \ Fts5PhraseIter.java \ Fts5Tokenizer.java \ - TesterFts5.java \ XTokenizeCallback.java \ ) endif -JAVA_FILES.tester := $(dir.src.jni.tester)/SQLTester.java +JAVA_FILES.tester := $(SQLTester.java) JAVA_FILES.package.info := \ $(dir.src.jni)/package-info.java \ $(dir.src.jni)/annotation/package-info.java @@ -233,14 +239,12 @@ endef # Invoke ADD_JNI_H once for each Java file which includes JNI # declarations: $(eval $(call ADD_JNI_H,$(dir.src.jni),SQLite3Jni,)) +$(eval $(call ADD_JNI_H,$(dir.src.jni),SQLTester,_tester)) ifeq (1,$(enable.fts5)) $(eval $(call ADD_JNI_H,$(dir.src.fts5),Fts5ExtensionApi,_fts5)) $(eval $(call ADD_JNI_H,$(dir.src.fts5),fts5_api,_fts5)) $(eval $(call ADD_JNI_H,$(dir.src.fts5),fts5_tokenizer,_fts5)) endif -ifeq (1,$(enable.tester)) - $(eval $(call ADD_JNI_H,$(dir.src.jni.tester),SQLTester,_tester)) -endif $(sqlite3-jni.h.in): $(dir.bld.c) #package.dll.cfiles := @@ -252,17 +256,18 @@ package.dll.cflags = \ -I$(JDK_HOME)/include \ $(patsubst %,-I%,$(patsubst %.h,,$(wildcard $(JDK_HOME)/include/*))) \ -Wall -# Using (-Wall -Wextra) triggers an untennable number of -# gcc warnings from sqlite3.c for mundane things like -# unused parameters. -# # The gross $(patsubst...) above is to include the platform-specific # subdir which lives under $(JDK_HOME)/include and is a required # include path for client-level code. +# +# Using (-Wall -Wextra) triggers an untennable number of +# gcc warnings from sqlite3.c for mundane things like +# unused parameters. ######################################################################## ifeq (1,$(enable.tester)) package.dll.cflags += -DSQLITE_JNI_ENABLE_SQLTester endif + $(sqlite3-jni.h): $(sqlite3-jni.h.in) $(MAKEFILE) @cat $(sqlite3-jni.h.in) > $@.tmp @if cmp $@ $@.tmp >/dev/null; then \ @@ -308,21 +313,21 @@ ifeq (1,$(enable.tester)) tester-local: $(CLASS_FILES.tester) $(package.dll) $(bin.java) -ea -Djava.library.path=$(dir.bld.c) \ $(java.flags) -cp $(classpath) \ - org.sqlite.jni.tester.SQLTester $(tester.flags) $(tester.scripts) + org.sqlite.jni.SQLTester $(tester.flags) $(tester.scripts) tester: tester-local else tester: - @echo "SQLTester support is disabled. Build with enable.tester=1 to enable it." + @echo "SQLTester support is disabled." endif -tester.extdir.default := src/tests/ext +tester.extdir.default := $(dir.tests)/ext tester.extdir ?= $(tester.extdir.default) tester.extern-scripts := $(wildcard $(tester.extdir)/*.test) ifneq (,$(tester.extern-scripts)) tester-ext: $(bin.java) -ea -Djava.library.path=$(dir.bld.c) \ $(java.flags) -cp $(classpath) \ - org.sqlite.jni.tester.SQLTester $(tester.flags) $(tester.extern-scripts) + org.sqlite.jni.SQLTester $(tester.flags) $(tester.extern-scripts) else tester-ext: @echo "******************************************************"; \ @@ -381,8 +386,7 @@ run-jar: $(package.jar) $(package.dll) # javadoc... dir.doc := $(dir.jni)/javadoc doc.index := $(dir.doc)/index.html -javadoc.exclude := -exclude org.sqlite.jni.tester \ - -exclude org.sqlite.jni.fts5 +javadoc.exclude := -exclude org.sqlite.jni.fts5 # ^^^^ 2023-09-13: elide the fts5 parts from the public docs for # the time being, as it's not clear where the Java bindings for # those bits are going. diff --git a/ext/jni/src/c/sqlite3-jni.c b/ext/jni/src/c/sqlite3-jni.c index 37fa2cc05b..4161d503fe 100644 --- a/ext/jni/src/c/sqlite3-jni.c +++ b/ext/jni/src/c/sqlite3-jni.c @@ -2906,17 +2906,13 @@ S3JniApi(sqlite3_complete(),int,1complete)( S3JniApi(sqlite3_compileoption_used(),jboolean,1compileoption_1used)( JniArgsEnvClass, jstring name ){ - if( name ){ - const char *zUtf8 = s3jni_jstring_to_mutf8(name) - /* We know these to be ASCII, so MUTF-8 is fine (and - hypothetically faster to convert). */; - const jboolean rc = - 0==sqlite3_compileoption_used(zUtf8) ? JNI_FALSE : JNI_TRUE; - s3jni_mutf8_release(name, zUtf8); - return rc; - }else{ - return JNI_FALSE; - } + const char *zUtf8 = s3jni_jstring_to_mutf8(name) + /* We know these to be ASCII, so MUTF-8 is fine (and + hypothetically faster to convert). */; + const jboolean rc = + 0==sqlite3_compileoption_used(zUtf8) ? JNI_FALSE : JNI_TRUE; + s3jni_mutf8_release(name, zUtf8); + return rc; } S3JniApi(sqlite3_config() /*for a small subset of options.*/, @@ -5573,7 +5569,7 @@ static int SQLTester_strnotglob(const char *zGlob, const char *z){ } JNIEXPORT jint JNICALL -Java_org_sqlite_jni_tester_SQLTester_strglob( +Java_org_sqlite_jni_SQLTester_strglob( JniArgsEnvClass, jbyteArray baG, jbyteArray baT ){ int rc = 0; @@ -5600,7 +5596,7 @@ static int SQLTester_auto_extension(sqlite3 *pDb, const char **pzErr, } JNIEXPORT void JNICALL -Java_org_sqlite_jni_tester_SQLTester_installCustomExtensions(JniArgsEnvClass){ +Java_org_sqlite_jni_SQLTester_installCustomExtensions(JniArgsEnvClass){ sqlite3_auto_extension( (void(*)(void))SQLTester_auto_extension ); } diff --git a/ext/jni/src/c/sqlite3-jni.h b/ext/jni/src/c/sqlite3-jni.h index 3b89ae7f73..c411541134 100644 --- a/ext/jni/src/c/sqlite3-jni.h +++ b/ext/jni/src/c/sqlite3-jni.h @@ -2099,6 +2099,35 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1type JNIEXPORT void JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1jni_1internal_1details (JNIEnv *, jclass); +#ifdef __cplusplus +} +#endif +#endif +/* DO NOT EDIT THIS FILE - it is machine generated */ +#include +/* Header for class org_sqlite_jni_tester_SQLTester */ + +#ifndef _Included_org_sqlite_jni_tester_SQLTester +#define _Included_org_sqlite_jni_tester_SQLTester +#ifdef __cplusplus +extern "C" { +#endif +/* + * Class: org_sqlite_jni_tester_SQLTester + * Method: strglob + * Signature: ([B[B)I + */ +JNIEXPORT jint JNICALL Java_org_sqlite_jni_tester_SQLTester_strglob + (JNIEnv *, jclass, jbyteArray, jbyteArray); + +/* + * Class: org_sqlite_jni_tester_SQLTester + * Method: installCustomExtensions + * Signature: ()V + */ +JNIEXPORT void JNICALL Java_org_sqlite_jni_tester_SQLTester_installCustomExtensions + (JNIEnv *, jclass); + #ifdef __cplusplus } #endif @@ -2328,32 +2357,3 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_fts5_fts5_1tokenizer_xTokenize } #endif #endif -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -/* Header for class org_sqlite_jni_tester_SQLTester */ - -#ifndef _Included_org_sqlite_jni_tester_SQLTester -#define _Included_org_sqlite_jni_tester_SQLTester -#ifdef __cplusplus -extern "C" { -#endif -/* - * Class: org_sqlite_jni_tester_SQLTester - * Method: strglob - * Signature: ([B[B)I - */ -JNIEXPORT jint JNICALL Java_org_sqlite_jni_tester_SQLTester_strglob - (JNIEnv *, jclass, jbyteArray, jbyteArray); - -/* - * Class: org_sqlite_jni_tester_SQLTester - * Method: installCustomExtensions - * Signature: ()V - */ -JNIEXPORT void JNICALL Java_org_sqlite_jni_tester_SQLTester_installCustomExtensions - (JNIEnv *, jclass); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/ext/jni/src/org/sqlite/jni/tester/SQLTester.java b/ext/jni/src/org/sqlite/jni/SQLTester.java similarity index 99% rename from ext/jni/src/org/sqlite/jni/tester/SQLTester.java rename to ext/jni/src/org/sqlite/jni/SQLTester.java index 4a97d4974e..b3e184523a 100644 --- a/ext/jni/src/org/sqlite/jni/tester/SQLTester.java +++ b/ext/jni/src/org/sqlite/jni/SQLTester.java @@ -12,16 +12,13 @@ ** This file contains the main application entry pointer for the ** SQLTester framework. */ -package org.sqlite.jni.tester; +package org.sqlite.jni; import java.util.List; import java.util.ArrayList; import java.util.Arrays; import java.nio.charset.StandardCharsets; import java.util.regex.*; -import org.sqlite.jni.*; import static org.sqlite.jni.SQLite3Jni.*; -import org.sqlite.jni.sqlite3; - /** Modes for how to escape (or not) column values and names from @@ -150,12 +147,15 @@ class Outer { } /** - This class provides an application which aims to implement the +

This class provides an application which aims to implement the rudimentary SQL-driven test tool described in the accompanying {@code test-script-interpreter.md}. -

This is a work in progress. - +

This class is an internal testing tool, not part of the public + interface but is (A) in the same package as the library because + access permissions require it to be so and (B) the JDK8 javadoc + offers no way to filter individual classes out of the doc + generation process (it can only exclude packages, but see (A)).

An instance of this application provides a core set of services which TestScript instances use for processing testing logic. diff --git a/ext/jni/src/org/sqlite/jni/SQLite3Jni.java b/ext/jni/src/org/sqlite/jni/SQLite3Jni.java index a67d9f57b8..38aa7aad99 100644 --- a/ext/jni/src/org/sqlite/jni/SQLite3Jni.java +++ b/ext/jni/src/org/sqlite/jni/SQLite3Jni.java @@ -123,7 +123,7 @@ public final class SQLite3Jni { which client-level code should use to make any informed decisions. */ - public static native boolean sqlite3_java_uncache_thread(); + static native boolean sqlite3_java_uncache_thread(); ////////////////////////////////////////////////////////////////////// // Maintenance reminder: please keep the sqlite3_.... functions @@ -147,7 +147,7 @@ public final class SQLite3Jni { "not a key" value. */ @Canonical - public static native long sqlite3_aggregate_context(sqlite3_context cx, boolean initialize); + static native long sqlite3_aggregate_context(sqlite3_context cx, boolean initialize); /** Functions almost as documented for the C API, with these @@ -166,10 +166,10 @@ public final class SQLite3Jni {

See the AutoExtension class docs for more information. */ @Canonical - public static native int sqlite3_auto_extension(@NotNull AutoExtensionCallback callback); + static native int sqlite3_auto_extension(@NotNull AutoExtensionCallback callback); @Canonical - private static native int sqlite3_backup_finish(@NotNull long ptrToBackup); + static native int sqlite3_backup_finish(@NotNull long ptrToBackup); @Canonical public static int sqlite3_backup_finish(@NotNull sqlite3_backup b){ @@ -177,7 +177,7 @@ public final class SQLite3Jni { } @Canonical - private static native sqlite3_backup sqlite3_backup_init( + static native sqlite3_backup sqlite3_backup_init( @NotNull long ptrToDbDest, @NotNull String destTableName, @NotNull long ptrToDbSrc, @NotNull String srcTableName ); @@ -192,7 +192,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_backup_pagecount(@NotNull long ptrToBackup); + static native int sqlite3_backup_pagecount(@NotNull long ptrToBackup); @Canonical public static int sqlite3_backup_pagecount(@NotNull sqlite3_backup b){ @@ -200,7 +200,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_backup_remaining(@NotNull long ptrToBackup); + static native int sqlite3_backup_remaining(@NotNull long ptrToBackup); @Canonical public static int sqlite3_backup_remaining(@NotNull sqlite3_backup b){ @@ -208,7 +208,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_backup_step(@NotNull long ptrToBackup, int nPage); + static native int sqlite3_backup_step(@NotNull long ptrToBackup, int nPage); @Canonical public static int sqlite3_backup_step(@NotNull sqlite3_backup b, int nPage){ @@ -216,7 +216,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_blob( + static native int sqlite3_bind_blob( @NotNull long ptrToStmt, int ndx, @Nullable byte[] data, int n ); @@ -239,7 +239,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_double( + static native int sqlite3_bind_double( @NotNull long ptrToStmt, int ndx, double v ); @@ -251,7 +251,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_int( + static native int sqlite3_bind_int( @NotNull long ptrToStmt, int ndx, int v ); @@ -263,7 +263,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_int64( + static native int sqlite3_bind_int64( @NotNull long ptrToStmt, int ndx, long v ); @@ -272,7 +272,7 @@ public final class SQLite3Jni { return sqlite3_bind_int64( stmt.getNativePointer(), ndx, v ); } - private static native int sqlite3_bind_java_object( + static native int sqlite3_bind_java_object( @NotNull long ptrToStmt, int ndx, @Nullable Object o ); @@ -289,7 +289,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_null(@NotNull long ptrToStmt, int ndx); + static native int sqlite3_bind_null(@NotNull long ptrToStmt, int ndx); @Canonical public static int sqlite3_bind_null(@NotNull sqlite3_stmt stmt, int ndx){ @@ -297,7 +297,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_parameter_count(@NotNull long ptrToStmt); + static native int sqlite3_bind_parameter_count(@NotNull long ptrToStmt); @Canonical public static int sqlite3_bind_parameter_count(@NotNull sqlite3_stmt stmt){ @@ -315,7 +315,7 @@ public final class SQLite3Jni { public-facing one. */ @Canonical - private static native int sqlite3_bind_parameter_index( + static native int sqlite3_bind_parameter_index( @NotNull long ptrToStmt, @NotNull byte[] paramName ); @@ -328,7 +328,7 @@ public final class SQLite3Jni { } @Canonical - private static native String sqlite3_bind_parameter_name( + static native String sqlite3_bind_parameter_name( @NotNull long ptrToStmt, int index ); @@ -338,7 +338,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_text( + static native int sqlite3_bind_text( @NotNull long ptrToStmt, int ndx, @Nullable byte[] utf8, int maxBytes ); @@ -383,7 +383,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_text16( + static native int sqlite3_bind_text16( @NotNull long ptrToStmt, int ndx, @Nullable byte[] data, int maxBytes ); @@ -426,7 +426,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_zeroblob(@NotNull long ptrToStmt, int ndx, int n); + static native int sqlite3_bind_zeroblob(@NotNull long ptrToStmt, int ndx, int n); @Canonical public static int sqlite3_bind_zeroblob(@NotNull sqlite3_stmt stmt, int ndx, int n){ @@ -434,7 +434,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_bind_zeroblob64( + static native int sqlite3_bind_zeroblob64( @NotNull long ptrToStmt, int ndx, long n ); @@ -444,7 +444,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_blob_bytes(@NotNull long ptrToBlob); + static native int sqlite3_blob_bytes(@NotNull long ptrToBlob); @Canonical public static int sqlite3_blob_bytes(@NotNull sqlite3_blob blob){ @@ -460,7 +460,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_blob_open( + static native int sqlite3_blob_open( @NotNull long ptrToDb, @NotNull String dbName, @NotNull String tableName, @NotNull String columnName, long iRow, int flags, @NotNull OutputPointer.sqlite3_blob out @@ -490,7 +490,7 @@ public final class SQLite3Jni { }; @Canonical - private static native int sqlite3_blob_read( + static native int sqlite3_blob_read( @NotNull long ptrToBlob, @NotNull byte[] target, int iOffset ); @@ -502,7 +502,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_blob_reopen( + static native int sqlite3_blob_reopen( @NotNull long ptrToBlob, long newRowId ); @@ -512,7 +512,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_blob_write( + static native int sqlite3_blob_write( @NotNull long ptrToBlob, @NotNull byte[] bytes, int iOffset ); @@ -524,7 +524,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_busy_handler( + static native int sqlite3_busy_handler( @NotNull long ptrToDb, @Nullable BusyHandlerCallback handler ); @@ -541,7 +541,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_busy_timeout(@NotNull long ptrToDb, int ms); + static native int sqlite3_busy_timeout(@NotNull long ptrToDb, int ms); @Canonical public static int sqlite3_busy_timeout(@NotNull sqlite3 db, int ms){ @@ -549,12 +549,12 @@ public final class SQLite3Jni { } @Canonical - public static native boolean sqlite3_cancel_auto_extension( + static native boolean sqlite3_cancel_auto_extension( @NotNull AutoExtensionCallback ax ); @Canonical - private static native int sqlite3_changes(@NotNull long ptrToDb); + static native int sqlite3_changes(@NotNull long ptrToDb); @Canonical public static int sqlite3_changes(@NotNull sqlite3 db){ @@ -562,7 +562,7 @@ public final class SQLite3Jni { } @Canonical - private static native long sqlite3_changes64(@NotNull long ptrToDb); + static native long sqlite3_changes64(@NotNull long ptrToDb); @Canonical public static long sqlite3_changes64(@NotNull sqlite3 db){ @@ -570,7 +570,7 @@ public final class SQLite3Jni { } @Canonical - public static native int sqlite3_clear_bindings(@NotNull long ptrToStmt); + static native int sqlite3_clear_bindings(@NotNull long ptrToStmt); @Canonical public static int sqlite3_clear_bindings(@NotNull sqlite3_stmt stmt){ @@ -578,7 +578,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_close(@Nullable long ptrToDb); + static native int sqlite3_close(@Nullable long ptrToDb); @Canonical public static int sqlite3_close(@Nullable sqlite3 db){ @@ -599,12 +599,12 @@ public final class SQLite3Jni { } @Canonical - public static native byte[] sqlite3_column_blob( + static native byte[] sqlite3_column_blob( @NotNull sqlite3_stmt stmt, int ndx ); @Canonical - private static native int sqlite3_column_bytes(@NotNull long ptrToStmt, int ndx); + static native int sqlite3_column_bytes(@NotNull long ptrToStmt, int ndx); @Canonical public static int sqlite3_column_bytes(@NotNull sqlite3_stmt stmt, int ndx){ @@ -612,7 +612,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_column_bytes16(@NotNull long ptrToStmt, int ndx); + static native int sqlite3_column_bytes16(@NotNull long ptrToStmt, int ndx); @Canonical public static int sqlite3_column_bytes16(@NotNull sqlite3_stmt stmt, int ndx){ @@ -620,7 +620,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_column_count(@NotNull long ptrToStmt); + static native int sqlite3_column_count(@NotNull long ptrToStmt); @Canonical public static int sqlite3_column_count(@NotNull sqlite3_stmt stmt){ @@ -628,7 +628,7 @@ public final class SQLite3Jni { } @Canonical - private static native String sqlite3_column_decltype(@NotNull long ptrToStmt, int ndx); + static native String sqlite3_column_decltype(@NotNull long ptrToStmt, int ndx); @Canonical public static String sqlite3_column_decltype(@NotNull sqlite3_stmt stmt, int ndx){ @@ -636,22 +636,22 @@ public final class SQLite3Jni { } @Canonical - public static native double sqlite3_column_double( + static native double sqlite3_column_double( @NotNull sqlite3_stmt stmt, int ndx ); @Canonical - public static native int sqlite3_column_int( + static native int sqlite3_column_int( @NotNull sqlite3_stmt stmt, int ndx ); @Canonical - public static native long sqlite3_column_int64( + static native long sqlite3_column_int64( @NotNull sqlite3_stmt stmt, int ndx ); @Canonical - private static native String sqlite3_column_name(@NotNull long ptrToStmt, int ndx); + static native String sqlite3_column_name(@NotNull long ptrToStmt, int ndx); @Canonical public static String sqlite3_column_name(@NotNull sqlite3_stmt stmt, int ndx){ @@ -659,7 +659,7 @@ public final class SQLite3Jni { } @Canonical - private static native String sqlite3_column_database_name(@NotNull long ptrToStmt, int ndx); + static native String sqlite3_column_database_name(@NotNull long ptrToStmt, int ndx); @Canonical public static String sqlite3_column_database_name(@NotNull sqlite3_stmt stmt, int ndx){ @@ -667,7 +667,7 @@ public final class SQLite3Jni { } @Canonical - private static native String sqlite3_column_origin_name(@NotNull long ptrToStmt, int ndx); + static native String sqlite3_column_origin_name(@NotNull long ptrToStmt, int ndx); @Canonical public static String sqlite3_column_origin_name(@NotNull sqlite3_stmt stmt, int ndx){ @@ -675,7 +675,7 @@ public final class SQLite3Jni { } @Canonical - private static native String sqlite3_column_table_name(@NotNull long ptrToStmt, int ndx); + static native String sqlite3_column_table_name(@NotNull long ptrToStmt, int ndx); @Canonical public static String sqlite3_column_table_name(@NotNull sqlite3_stmt stmt, int ndx){ @@ -691,12 +691,12 @@ public final class SQLite3Jni { @see #sqlite3_column_text16(sqlite3_stmt,int) */ @Canonical - public static native byte[] sqlite3_column_text( + static native byte[] sqlite3_column_text( @NotNull sqlite3_stmt stmt, int ndx ); @Canonical - public static native String sqlite3_column_text16( + static native String sqlite3_column_text16( @NotNull sqlite3_stmt stmt, int ndx ); @@ -738,7 +738,7 @@ public final class SQLite3Jni { // } @Canonical - private static native int sqlite3_column_type(@NotNull long ptrToStmt, int ndx); + static native int sqlite3_column_type(@NotNull long ptrToStmt, int ndx); @Canonical public static int sqlite3_column_type(@NotNull sqlite3_stmt stmt, int ndx){ @@ -746,7 +746,7 @@ public final class SQLite3Jni { } @Canonical - public static native sqlite3_value sqlite3_column_value( + static native sqlite3_value sqlite3_column_value( @NotNull sqlite3_stmt stmt, int ndx ); @@ -779,21 +779,17 @@ public final class SQLite3Jni { } @Canonical - public static native String sqlite3_compileoption_get(int n); + static native String sqlite3_compileoption_get(int n); - /** - Unlike the C API, returns false if its argument is NULL (as - opposed to invoking UB). - */ @Canonical - public static native boolean sqlite3_compileoption_used(String optName); + static native boolean sqlite3_compileoption_used(String optName); /** This implementation is private because it's too easy to pass it - non-NUL-terminated arrays. + non-NUL-terminated byte arrays from client code. */ @Canonical - private static native int sqlite3_complete( + static native int sqlite3_complete( @NotNull byte[] nulTerminatedUtf8Sql ); @@ -802,8 +798,8 @@ public final class SQLite3Jni { null (as opposed to invoking UB). */ @Canonical() - public static int sqlite3_complete(String sql){ - return null==sql ? SQLITE_MISUSE : sqlite3_complete( nulTerminateUtf8(sql) ); + static int sqlite3_complete(@NotNull String sql){ + return sqlite3_complete( nulTerminateUtf8(sql) ); } @@ -825,7 +821,7 @@ public final class SQLite3Jni { @Canonical(comment="Option subset: "+ "SQLITE_CONFIG_SINGLETHREAD, SQLITE_CONFIG_MULTITHREAD, "+ "SQLITE_CONFIG_SERIALIZED") - public static native int sqlite3_config(int op); + static native int sqlite3_config(int op); /** If the native library was built with SQLITE_ENABLE_SQLLOG defined @@ -842,21 +838,21 @@ public final class SQLite3Jni { library APIs are being called. */ @Canonical(comment="Option subset: SQLITE_CONFIG_SQLLOG") - public static native int sqlite3_config( @Nullable ConfigSqllogCallback logger ); + static native int sqlite3_config( @Nullable ConfigSqllogCallback logger ); /** The sqlite3_config() overload for handling the SQLITE_CONFIG_LOG option. */ @Canonical(comment="Option subset: SQLITE_CONFIG_LOG") - public static native int sqlite3_config( @Nullable ConfigLogCallback logger ); + static native int sqlite3_config( @Nullable ConfigLogCallback logger ); /** Unlike this C API, this returns null if its argument is null (as opposed to invoking UB). */ @Canonical - public static native sqlite3 sqlite3_context_db_handle( + static native sqlite3 sqlite3_context_db_handle( @NotNull sqlite3_context cx ); @@ -865,7 +861,7 @@ public final class SQLite3Jni { arguments are null (as opposed to invoking UB). */ @Canonical - public static native int sqlite3_create_collation( + static native int sqlite3_create_collation( @NotNull sqlite3 db, @NotNull String name, int eTextRep, @NotNull CollationCallback col ); @@ -882,13 +878,13 @@ public final class SQLite3Jni { functionName arguments are null (as opposed to invoking UB). */ @Canonical - public static native int sqlite3_create_function( + static native int sqlite3_create_function( @NotNull sqlite3 db, @NotNull String functionName, int nArg, int eTextRep, @NotNull SQLFunction func ); @Canonical - private static native int sqlite3_data_count(@NotNull long ptrToStmt); + static native int sqlite3_data_count(@NotNull long ptrToStmt); @Canonical public static int sqlite3_data_count(@NotNull sqlite3_stmt stmt){ @@ -904,7 +900,7 @@ public final class SQLite3Jni { are null (as opposed to invoking UB). */ @Canonical - public static native int sqlite3_db_config( + static native int sqlite3_db_config( @NotNull sqlite3 db, int op, int onOff, @Nullable OutputPointer.Int32 out ); @@ -916,35 +912,35 @@ public final class SQLite3Jni { extended in future versions. */ @Canonical(comment="Supports only a subset of options.") - public static native int sqlite3_db_config( + static native int sqlite3_db_config( @NotNull sqlite3 db, int op, @NotNull String val ); @Canonical - public static native String sqlite3_db_filename( + static native String sqlite3_db_filename( @NotNull sqlite3 db, @NotNull String dbName ); @Canonical - public static native sqlite3 sqlite3_db_handle( @NotNull sqlite3_stmt stmt ); + static native sqlite3 sqlite3_db_handle(@NotNull sqlite3_stmt stmt); @Canonical - public static native int sqlite3_db_release_memory(sqlite3 db); + static native int sqlite3_db_release_memory(sqlite3 db); @Canonical - public static native int sqlite3_db_status( + static native int sqlite3_db_status( @NotNull sqlite3 db, int op, @NotNull OutputPointer.Int32 pCurrent, @NotNull OutputPointer.Int32 pHighwater, boolean reset ); @Canonical - public static native int sqlite3_errcode(@NotNull sqlite3 db); + static native int sqlite3_errcode(@NotNull sqlite3 db); @Canonical - public static native String sqlite3_errmsg16(@NotNull sqlite3 db); + static native String sqlite3_errmsg16(@NotNull sqlite3 db); @Canonical - private static native int sqlite3_error_offset(@NotNull long ptrToDb); + static native int sqlite3_error_offset(@NotNull long ptrToDb); /** Note that the returned byte offset values assume UTF-8-encoded @@ -956,13 +952,13 @@ public final class SQLite3Jni { } @Canonical - public static native String sqlite3_errstr(int resultCode); + static native String sqlite3_errstr(int resultCode); @Canonical - public static native String sqlite3_expanded_sql(@NotNull sqlite3_stmt stmt); + static native String sqlite3_expanded_sql(@NotNull sqlite3_stmt stmt); @Canonical - private static native int sqlite3_extended_errcode(@NotNull long ptrToDb); + static native int sqlite3_extended_errcode(@NotNull long ptrToDb); @Canonical public static int sqlite3_extended_errcode(@NotNull sqlite3 db){ @@ -970,12 +966,12 @@ public final class SQLite3Jni { } @Canonical - public static native boolean sqlite3_extended_result_codes( + static native boolean sqlite3_extended_result_codes( @NotNull sqlite3 db, boolean onoff ); @Canonical - private static native boolean sqlite3_get_autocommit(@NotNull long ptrToDb); + static native boolean sqlite3_get_autocommit(@NotNull long ptrToDb); @Canonical public static boolean sqlite3_get_autocommit(@NotNull sqlite3 db){ @@ -983,7 +979,7 @@ public final class SQLite3Jni { } @Canonical - public static native Object sqlite3_get_auxdata( + static native Object sqlite3_get_auxdata( @NotNull sqlite3_context cx, int n ); @@ -996,35 +992,35 @@ public final class SQLite3Jni { } @Canonical - public static native int sqlite3_initialize(); + static native int sqlite3_initialize(); @Canonical - public static native void sqlite3_interrupt(@NotNull sqlite3 db); + static native void sqlite3_interrupt(@NotNull sqlite3 db); @Canonical - public static native boolean sqlite3_is_interrupted(@NotNull sqlite3 db); + static native boolean sqlite3_is_interrupted(@NotNull sqlite3 db); @Canonical - public static native boolean sqlite3_keyword_check(@NotNull String word); + static native boolean sqlite3_keyword_check(@NotNull String word); @Canonical - public static native int sqlite3_keyword_count(); + static native int sqlite3_keyword_count(); @Canonical - public static native String sqlite3_keyword_name(int index); + static native String sqlite3_keyword_name(int index); @Canonical - public static native long sqlite3_last_insert_rowid(@NotNull sqlite3 db); + static native long sqlite3_last_insert_rowid(@NotNull sqlite3 db); @Canonical - public static native String sqlite3_libversion(); + static native String sqlite3_libversion(); @Canonical - public static native int sqlite3_libversion_number(); + static native int sqlite3_libversion_number(); @Canonical - public static native int sqlite3_limit(@NotNull sqlite3 db, int id, int newVal); + static native int sqlite3_limit(@NotNull sqlite3 db, int id, int newVal); /** Works like its C counterpart and makes the native pointer of the @@ -1040,7 +1036,7 @@ public final class SQLite3Jni { db handle. */ @Canonical - public static native int sqlite3_open( + static native int sqlite3_open( @Nullable String filename, @NotNull OutputPointer.sqlite3 ppDb ); @@ -1059,7 +1055,7 @@ public final class SQLite3Jni { }; @Canonical - public static native int sqlite3_open_v2( + static native int sqlite3_open_v2( @Nullable String filename, @NotNull OutputPointer.sqlite3 ppDb, int flags, @Nullable String zVfs ); @@ -1104,7 +1100,7 @@ public final class SQLite3Jni { real utility. */ @Canonical - private static native int sqlite3_prepare( + static native int sqlite3_prepare( @NotNull long ptrToDb, @NotNull byte[] sqlUtf8, int maxBytes, @NotNull OutputPointer.sqlite3_stmt outStmt, @Nullable OutputPointer.Int32 pTailOffset @@ -1164,7 +1160,7 @@ public final class SQLite3Jni { @see #sqlite3_prepare */ @Canonical - private static native int sqlite3_prepare_v2( + static native int sqlite3_prepare_v2( @NotNull long ptrToDb, @NotNull byte[] sqlUtf8, int maxBytes, @NotNull OutputPointer.sqlite3_stmt outStmt, @Nullable OutputPointer.Int32 pTailOffset @@ -1218,7 +1214,7 @@ public final class SQLite3Jni { @see #sqlite3_prepare */ @Canonical - private static native int sqlite3_prepare_v3( + static native int sqlite3_prepare_v3( @NotNull long ptrToDb, @NotNull byte[] sqlUtf8, int maxBytes, int prepFlags, @NotNull OutputPointer.sqlite3_stmt outStmt, @Nullable OutputPointer.Int32 pTailOffset @@ -1374,7 +1370,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_preupdate_blobwrite(@NotNull long ptrToDb); + static native int sqlite3_preupdate_blobwrite(@NotNull long ptrToDb); /** If the C API was built with SQLITE_ENABLE_PREUPDATE_HOOK defined, this @@ -1387,7 +1383,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_preupdate_count(@NotNull long ptrToDb); + static native int sqlite3_preupdate_count(@NotNull long ptrToDb); /** If the C API was built with SQLITE_ENABLE_PREUPDATE_HOOK defined, this @@ -1400,7 +1396,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_preupdate_depth(@NotNull long ptrToDb); + static native int sqlite3_preupdate_depth(@NotNull long ptrToDb); /** If the C API was built with SQLITE_ENABLE_PREUPDATE_HOOK defined, this @@ -1413,7 +1409,7 @@ public final class SQLite3Jni { } @Canonical - private static native PreupdateHookCallback sqlite3_preupdate_hook( + static native PreupdateHookCallback sqlite3_preupdate_hook( @NotNull long ptrToDb, @Nullable PreupdateHookCallback hook ); @@ -1430,7 +1426,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_preupdate_new(@NotNull long ptrToDb, int col, + static native int sqlite3_preupdate_new(@NotNull long ptrToDb, int col, @NotNull OutputPointer.sqlite3_value out); /** @@ -1455,7 +1451,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_preupdate_old(@NotNull long ptrToDb, int col, + static native int sqlite3_preupdate_old(@NotNull long ptrToDb, int col, @NotNull OutputPointer.sqlite3_value out); /** @@ -1480,18 +1476,18 @@ public final class SQLite3Jni { } @Canonical - public static native void sqlite3_progress_handler( + static native void sqlite3_progress_handler( @NotNull sqlite3 db, int n, @Nullable ProgressHandlerCallback h ); @Canonical - public static native void sqlite3_randomness(byte[] target); + static native void sqlite3_randomness(byte[] target); @Canonical - public static native int sqlite3_release_memory(int n); + static native int sqlite3_release_memory(int n); @Canonical - public static native int sqlite3_reset(@NotNull sqlite3_stmt stmt); + static native int sqlite3_reset(@NotNull sqlite3_stmt stmt); /** Works like the C API except that it has no side effects if auto @@ -1499,10 +1495,10 @@ public final class SQLite3Jni { extensions cannot be manipulated while it is being traversed.) */ @Canonical - public static native void sqlite3_reset_auto_extension(); + static native void sqlite3_reset_auto_extension(); @Canonical - public static native void sqlite3_result_double( + static native void sqlite3_result_double( @NotNull sqlite3_context cx, double v ); @@ -1514,7 +1510,7 @@ public final class SQLite3Jni { complaint about the invalid argument. */ @Canonical - private static native void sqlite3_result_error( + static native void sqlite3_result_error( @NotNull sqlite3_context cx, @NotNull byte[] msg, int eTextRep ); @@ -1559,32 +1555,32 @@ public final class SQLite3Jni { } @Canonical - public static native void sqlite3_result_error_toobig( + static native void sqlite3_result_error_toobig( @NotNull sqlite3_context cx ); @Canonical - public static native void sqlite3_result_error_nomem( + static native void sqlite3_result_error_nomem( @NotNull sqlite3_context cx ); @Canonical - public static native void sqlite3_result_error_code( + static native void sqlite3_result_error_code( @NotNull sqlite3_context cx, int c ); @Canonical - public static native void sqlite3_result_null( + static native void sqlite3_result_null( @NotNull sqlite3_context cx ); @Canonical - public static native void sqlite3_result_int( + static native void sqlite3_result_int( @NotNull sqlite3_context cx, int v ); @Canonical - public static native void sqlite3_result_int64( + static native void sqlite3_result_int64( @NotNull sqlite3_context cx, long v ); @@ -1604,7 +1600,7 @@ public final class SQLite3Jni { @see #sqlite3_value_java_object @see #sqlite3_bind_java_object */ - public static native void sqlite3_result_java_object( + static native void sqlite3_result_java_object( @NotNull sqlite3_context cx, @NotNull Object o ); @@ -1669,17 +1665,17 @@ public final class SQLite3Jni { } @Canonical - public static native void sqlite3_result_value( + static native void sqlite3_result_value( @NotNull sqlite3_context cx, @NotNull sqlite3_value v ); @Canonical - public static native void sqlite3_result_zeroblob( + static native void sqlite3_result_zeroblob( @NotNull sqlite3_context cx, int n ); @Canonical - public static native int sqlite3_result_zeroblob64( + static native int sqlite3_result_zeroblob64( @NotNull sqlite3_context cx, long n ); @@ -1688,7 +1684,7 @@ public final class SQLite3Jni { unnecessary in Java. */ @Canonical - private static native void sqlite3_result_blob( + static native void sqlite3_result_blob( @NotNull sqlite3_context cx, @Nullable byte[] blob, int maxLen ); @@ -1718,7 +1714,7 @@ public final class SQLite3Jni { arguably unnecessary in Java.

*/ @Canonical - private static native void sqlite3_result_blob64( + static native void sqlite3_result_blob64( @NotNull sqlite3_context cx, @Nullable byte[] blob, long maxLen ); @@ -1734,7 +1730,7 @@ public final class SQLite3Jni { arguably unnecessary in Java. */ @Canonical - private static native void sqlite3_result_text( + static native void sqlite3_result_text( @NotNull sqlite3_context cx, @Nullable byte[] utf8, int maxLen ); @@ -1780,7 +1776,7 @@ public final class SQLite3Jni { arguably unnecessary in Java. */ @Canonical - private static native void sqlite3_result_text64( + static native void sqlite3_result_text64( @NotNull sqlite3_context cx, @Nullable byte[] text, long maxLength, int encoding ); @@ -1820,17 +1816,17 @@ public final class SQLite3Jni { } @Canonical - public static native int sqlite3_set_authorizer( + static native int sqlite3_set_authorizer( @NotNull sqlite3 db, @Nullable AuthorizerCallback auth ); @Canonical - public static native void sqlite3_set_auxdata( + static native void sqlite3_set_auxdata( @NotNull sqlite3_context cx, int n, @Nullable Object data ); @Canonical - public static native void sqlite3_set_last_insert_rowid( + static native void sqlite3_set_last_insert_rowid( @NotNull sqlite3 db, long rowid ); @@ -1848,31 +1844,31 @@ public final class SQLite3Jni { public static synchronized native int sqlite3_shutdown(); @Canonical - public static native int sqlite3_sleep(int ms); + static native int sqlite3_sleep(int ms); @Canonical - public static native String sqlite3_sourceid(); + static native String sqlite3_sourceid(); @Canonical - public static native String sqlite3_sql(@NotNull sqlite3_stmt stmt); + static native String sqlite3_sql(@NotNull sqlite3_stmt stmt); @Canonical - public static native int sqlite3_status( + static native int sqlite3_status( int op, @NotNull OutputPointer.Int32 pCurrent, @NotNull OutputPointer.Int32 pHighwater, boolean reset ); @Canonical - public static native int sqlite3_status64( + static native int sqlite3_status64( int op, @NotNull OutputPointer.Int64 pCurrent, @NotNull OutputPointer.Int64 pHighwater, boolean reset ); @Canonical - public static native int sqlite3_step(@NotNull sqlite3_stmt stmt); + static native int sqlite3_step(@NotNull sqlite3_stmt stmt); @Canonical - private static native int sqlite3_stmt_explain(@NotNull long ptrToStmt, int op); + static native int sqlite3_stmt_explain(@NotNull long ptrToStmt, int op); @Canonical public static int sqlite3_stmt_explain(@NotNull sqlite3_stmt stmt, int op){ @@ -1880,7 +1876,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_stmt_isexplain(@NotNull long ptrToStmt); + static native int sqlite3_stmt_isexplain(@NotNull long ptrToStmt); @Canonical public static int sqlite3_stmt_isexplain(@NotNull sqlite3_stmt stmt){ @@ -1888,7 +1884,7 @@ public final class SQLite3Jni { } @Canonical - private static native boolean sqlite3_stmt_readonly(@NotNull long ptrToStmt); + static native boolean sqlite3_stmt_readonly(@NotNull long ptrToStmt); @Canonical public static boolean sqlite3_stmt_readonly(@NotNull sqlite3_stmt stmt){ @@ -1896,7 +1892,7 @@ public final class SQLite3Jni { } @Canonical - public static native int sqlite3_stmt_status( + static native int sqlite3_stmt_status( @NotNull sqlite3_stmt stmt, int op, boolean reset ); @@ -1912,7 +1908,7 @@ public final class SQLite3Jni { signature is the public-facing one. */ @Canonical - private static native int sqlite3_strglob( + static native int sqlite3_strglob( @NotNull byte[] glob, @NotNull byte[] nullTerminatedUtf8 ); @@ -1928,7 +1924,7 @@ public final class SQLite3Jni { The LIKE counterpart of the private sqlite3_strglob() method. */ @Canonical - private static native int sqlite3_strlike( + static native int sqlite3_strlike( @NotNull byte[] glob, @NotNull byte[] nullTerminatedUtf8, int escChar ); @@ -1943,7 +1939,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_system_errno(@NotNull long ptrToDb); + static native int sqlite3_system_errno(@NotNull long ptrToDb); @Canonical public static int sqlite3_system_errno(@NotNull sqlite3 db){ @@ -1951,7 +1947,7 @@ public final class SQLite3Jni { } @Canonical - public static native int sqlite3_table_column_metadata( + static native int sqlite3_table_column_metadata( @NotNull sqlite3 db, @NotNull String zDbName, @NotNull String zTableName, @NotNull String zColumnName, @Nullable OutputPointer.String pzDataType, @@ -1990,10 +1986,10 @@ public final class SQLite3Jni { } @Canonical - public static native int sqlite3_threadsafe(); + static native int sqlite3_threadsafe(); @Canonical - private static native int sqlite3_total_changes(@NotNull long ptrToDb); + static native int sqlite3_total_changes(@NotNull long ptrToDb); @Canonical public static int sqlite3_total_changes(@NotNull sqlite3 db){ @@ -2001,7 +1997,7 @@ public final class SQLite3Jni { } @Canonical - private static native long sqlite3_total_changes64(@NotNull long ptrToDb); + static native long sqlite3_total_changes64(@NotNull long ptrToDb); @Canonical public static long sqlite3_total_changes64(@NotNull sqlite3 db){ @@ -2018,17 +2014,17 @@ public final class SQLite3Jni { mapping state fails. */ @Canonical - public static native int sqlite3_trace_v2( + static native int sqlite3_trace_v2( @NotNull sqlite3 db, int traceMask, @Nullable TraceV2Callback tracer ); @Canonical - public static native int sqlite3_txn_state( + static native int sqlite3_txn_state( @NotNull sqlite3 db, @Nullable String zSchema ); @Canonical - private static native UpdateHookCallback sqlite3_update_hook( + static native UpdateHookCallback sqlite3_update_hook( @NotNull long ptrToDb, @Nullable UpdateHookCallback hook ); @@ -2050,7 +2046,7 @@ public final class SQLite3Jni { */ @Canonical - private static native byte[] sqlite3_value_blob(@NotNull long ptrToValue); + static native byte[] sqlite3_value_blob(@NotNull long ptrToValue); @Canonical public static byte[] sqlite3_value_blob(@NotNull sqlite3_value v){ @@ -2058,7 +2054,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_bytes(@NotNull long ptrToValue); + static native int sqlite3_value_bytes(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_bytes(@NotNull sqlite3_value v){ @@ -2066,7 +2062,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_bytes16(@NotNull long ptrToValue); + static native int sqlite3_value_bytes16(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_bytes16(@NotNull sqlite3_value v){ @@ -2074,7 +2070,7 @@ public final class SQLite3Jni { } @Canonical - private static native double sqlite3_value_double(@NotNull long ptrToValue); + static native double sqlite3_value_double(@NotNull long ptrToValue); @Canonical public static double sqlite3_value_double(@NotNull sqlite3_value v){ @@ -2082,7 +2078,7 @@ public final class SQLite3Jni { } @Canonical - private static native sqlite3_value sqlite3_value_dup(@NotNull long ptrToValue); + static native sqlite3_value sqlite3_value_dup(@NotNull long ptrToValue); @Canonical public static sqlite3_value sqlite3_value_dup(@NotNull sqlite3_value v){ @@ -2090,7 +2086,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_encoding(@NotNull long ptrToValue); + static native int sqlite3_value_encoding(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_encoding(@NotNull sqlite3_value v){ @@ -2098,7 +2094,7 @@ public final class SQLite3Jni { } @Canonical - private static native void sqlite3_value_free(@Nullable long ptrToValue); + static native void sqlite3_value_free(@Nullable long ptrToValue); @Canonical public static void sqlite3_value_free(@Nullable sqlite3_value v){ @@ -2106,7 +2102,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_frombind(@NotNull long ptrToValue); + static native int sqlite3_value_frombind(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_frombind(@NotNull sqlite3_value v){ @@ -2114,7 +2110,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_int(@NotNull long ptrToValue); + static native int sqlite3_value_int(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_int(@NotNull sqlite3_value v){ @@ -2122,14 +2118,14 @@ public final class SQLite3Jni { } @Canonical - private static native long sqlite3_value_int64(@NotNull long ptrToValue); + static native long sqlite3_value_int64(@NotNull long ptrToValue); @Canonical public static long sqlite3_value_int64(@NotNull sqlite3_value v){ return sqlite3_value_int64(v.getNativePointer()); } - private static native Object sqlite3_value_java_object(@NotNull long ptrToValue); + static native Object sqlite3_value_java_object(@NotNull long ptrToValue); /** If the given value was set using {@link @@ -2156,7 +2152,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_nochange(@NotNull long ptrToValue); + static native int sqlite3_value_nochange(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_nochange(@NotNull sqlite3_value v){ @@ -2164,7 +2160,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_numeric_type(@NotNull long ptrToValue); + static native int sqlite3_value_numeric_type(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_numeric_type(@NotNull sqlite3_value v){ @@ -2172,7 +2168,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_subtype(@NotNull long ptrToValue); + static native int sqlite3_value_subtype(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_subtype(@NotNull sqlite3_value v){ @@ -2180,7 +2176,7 @@ public final class SQLite3Jni { } @Canonical - private static native byte[] sqlite3_value_text(@NotNull long ptrToValue); + static native byte[] sqlite3_value_text(@NotNull long ptrToValue); /** Functions identially to the C API, and this note is just to @@ -2194,7 +2190,7 @@ public final class SQLite3Jni { } @Canonical - private static native String sqlite3_value_text16(@NotNull long ptrToValue); + static native String sqlite3_value_text16(@NotNull long ptrToValue); @Canonical public static String sqlite3_value_text16(@NotNull sqlite3_value v){ @@ -2202,7 +2198,7 @@ public final class SQLite3Jni { } @Canonical - private static native int sqlite3_value_type(@NotNull long ptrToValue); + static native int sqlite3_value_type(@NotNull long ptrToValue); @Canonical public static int sqlite3_value_type(@NotNull sqlite3_value v){ @@ -2215,7 +2211,7 @@ public final class SQLite3Jni { It has no stable interface. It may go way or change behavior at any time. */ - public static native void sqlite3_jni_internal_details(); + static native void sqlite3_jni_internal_details(); ////////////////////////////////////////////////////////////////////// // SQLITE_... constants follow... diff --git a/ext/jni/src/org/sqlite/jni/Tester1.java b/ext/jni/src/org/sqlite/jni/Tester1.java index d4e8213736..9d40eb9ed6 100644 --- a/ext/jni/src/org/sqlite/jni/Tester1.java +++ b/ext/jni/src/org/sqlite/jni/Tester1.java @@ -1283,7 +1283,7 @@ public class Tester1 implements Runnable { } Exception err = null; try { - Class t = Class.forName("org.sqlite.jni.fts5.TesterFts5"); + Class t = Class.forName("org.sqlite.jni.TesterFts5"); java.lang.reflect.Constructor ctor = t.getConstructor(); ctor.setAccessible(true); final long timeStart = System.currentTimeMillis(); diff --git a/ext/jni/src/org/sqlite/jni/fts5/TesterFts5.java b/ext/jni/src/org/sqlite/jni/TesterFts5.java similarity index 99% rename from ext/jni/src/org/sqlite/jni/fts5/TesterFts5.java rename to ext/jni/src/org/sqlite/jni/TesterFts5.java index d65b7b7a5f..8577ee46e1 100644 --- a/ext/jni/src/org/sqlite/jni/fts5/TesterFts5.java +++ b/ext/jni/src/org/sqlite/jni/TesterFts5.java @@ -11,10 +11,11 @@ ************************************************************************* ** This file contains a set of tests for the sqlite3 JNI bindings. */ -package org.sqlite.jni.fts5; +package org.sqlite.jni; import static org.sqlite.jni.SQLite3Jni.*; import static org.sqlite.jni.Tester1.*; import org.sqlite.jni.*; +import org.sqlite.jni.fts5.*; import java.util.*; diff --git a/ext/jni/src/org/sqlite/jni/tester/test-script-interpreter.md b/ext/jni/src/org/sqlite/jni/test-script-interpreter.md similarity index 100% rename from ext/jni/src/org/sqlite/jni/tester/test-script-interpreter.md rename to ext/jni/src/org/sqlite/jni/test-script-interpreter.md diff --git a/manifest b/manifest index 929496c32e..42d18e5b1e 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C More\swork\stowards\sthe\snew\spointer-passing\smechanism\sin\sJNI,\sand\scode-adjacent\scleanups. -D 2023-09-30T09:41:58.693 +C Make\sall\snative\sJNI\ssqlite3_...()\sbindings\spackage-private\sas\sa\sfoot-shooting\sprotective\smeasure\s(higher-level\spre-native-call\sargument\svalidation\sis\slargely\spending).\sMove\sSQLTester.java\sand\sTesterFts5.java\sinto\sthe\sorg.sqlite.jni\spackage\sso\sthat\sthey\scan\saccess\sthe\sbeing-tested\smethods. +D 2023-09-30T10:31:56.592 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724 @@ -235,11 +235,11 @@ F ext/fts5/tool/showfts5.tcl d54da0e067306663e2d5d523965ca487698e722c F ext/icu/README.txt 7ab7ced8ae78e3a645b57e78570ff589d4c672b71370f5aa9e1cd7024f400fc9 F ext/icu/icu.c c074519b46baa484bb5396c7e01e051034da8884bad1a1cb7f09bbe6be3f0282 F ext/icu/sqliteicu.h fa373836ed5a1ee7478bdf8a1650689294e41d0c89c1daab26e9ae78a32075a8 -F ext/jni/GNUmakefile 42e00052401b6dd41c0cdd53b31450606ea37486283abdb038dff9be74bff71e +F ext/jni/GNUmakefile 029d131ba19c74aec87cab49d36162fc2102e7e3fd58f9b8d2555c92a4752c95 F ext/jni/README.md 9fceaeb17cecdc5d699dfc83c0cbc3a03fdb3b86bf676381894166c73375ee75 F ext/jni/jar-dist.make 030aaa4ae71dd86e4ec5e7c1e6cd86f9dfa47c4592c070d2e35157e42498e1fa -F ext/jni/src/c/sqlite3-jni.c caab9e9fdb0b8d8682c730d9bbc166778971e86f443c3f6b57e70aca86236f0c -F ext/jni/src/c/sqlite3-jni.h e3ec460570ef74f1f3d7725f93a8cf89840e1fee983741a7939c5dc992971df5 +F ext/jni/src/c/sqlite3-jni.c d1fa417c9ee7db061f86e928834e1086172ef7199d2324b823136879b4c1a187 +F ext/jni/src/c/sqlite3-jni.h 9d6564f044664a82a3c2c8ab8d7f32b38082dc2a80bdb3370f21bb8d0ec901b9 F ext/jni/src/org/sqlite/jni/AbstractCollationCallback.java 95e88ba04f4aac51ffec65693e878e234088b2f21b387f4e4285c8b72b33e436 F ext/jni/src/org/sqlite/jni/AggregateFunction.java 7312486bc65fecdb91753c0a4515799194e031f45edbe16a6373cea18f404dc4 F ext/jni/src/org/sqlite/jni/AuthorizerCallback.java e6135be32f12bf140bffa39be7fd1a45ad83b2661ed49c08dbde04c8485feb38 @@ -259,10 +259,12 @@ F ext/jni/src/org/sqlite/jni/ProgressHandlerCallback.java 7b9ff2218129ece98ba60c F ext/jni/src/org/sqlite/jni/ResultCode.java ba701f20213a5f259e94cfbfdd36eb7ac7ce7797f2c6c7fca2004ff12ce20f86 F ext/jni/src/org/sqlite/jni/RollbackHookCallback.java d12352c0e22840de484ffa9b11ed5058bb0daca2e9f218055d3c54c947a273c4 F ext/jni/src/org/sqlite/jni/SQLFunction.java 544a875d33fd160467d82e2397ac33157b29971d715a821a4fad3c899113ee8c -F ext/jni/src/org/sqlite/jni/SQLite3Jni.java 2cce647774f7f8511c3b61cd280c19d871b49c401155e3f17c346db5d05ac824 +F ext/jni/src/org/sqlite/jni/SQLTester.java e7ba02a72be4205c479d08cbc48cd8f3ac5b924eb6b36a3f5a676a67dcdb8af3 w ext/jni/src/org/sqlite/jni/tester/SQLTester.java +F ext/jni/src/org/sqlite/jni/SQLite3Jni.java 65ff9e2426c35763139042ffb59ca565802ca668fe0c5c69334bbdf32a130d59 F ext/jni/src/org/sqlite/jni/ScalarFunction.java 6d387bb499fbe3bc13c53315335233dbf6a0c711e8fa7c521683219b041c614c F ext/jni/src/org/sqlite/jni/TableColumnMetadata.java 54511b4297fa28dcb3f49b24035e34ced10e3fd44fd0e458e784f4d6b0096dab -F ext/jni/src/org/sqlite/jni/Tester1.java 720e1efddd769d5785e95100ff48aa203f2288eea865326a1a81fd5af43ec3a5 +F ext/jni/src/org/sqlite/jni/Tester1.java ef0a6ee3b4e08ebd99010ca8196214bac902de0ea66f753a5cf581888f9a4211 +F ext/jni/src/org/sqlite/jni/TesterFts5.java 0995c5ca1da36b3b703c1c04132b2ee8edd16483be5c422ae378220a4817adbf w ext/jni/src/org/sqlite/jni/fts5/TesterFts5.java F ext/jni/src/org/sqlite/jni/TraceV2Callback.java beb0b064c1a5f8bfe585a324ed39a4e33edbe379a3fc60f1401661620d3ca7c0 F ext/jni/src/org/sqlite/jni/UpdateHookCallback.java 8376f4a931f2d5612b295c003c9515ba933ee76d8f95610e89c339727376e36c F ext/jni/src/org/sqlite/jni/WindowFunction.java 488980f4dbb6bdd7067d6cb9c43e4075475e51c54d9b74a5834422654b126246 @@ -276,7 +278,6 @@ F ext/jni/src/org/sqlite/jni/fts5/Fts5Context.java 7058da97059b8e156c17561a47ecd F ext/jni/src/org/sqlite/jni/fts5/Fts5ExtensionApi.java e2680721bd83129d0d650ba845b44d7634a9489a90a56c5ce3c54508bf470743 F ext/jni/src/org/sqlite/jni/fts5/Fts5PhraseIter.java 2a7f3d76a1206e6a43d4c4ed9609b294d5431cc7d8fb875d8419f76efa6e56dc F ext/jni/src/org/sqlite/jni/fts5/Fts5Tokenizer.java cc9a53846a168a215238af224c31cef0e8379780e36e8a5e743b00c08145cf19 -F ext/jni/src/org/sqlite/jni/fts5/TesterFts5.java 81ec50bb4c5a285177ea8bebe906792886fc733676d0eade76b18fac56057623 F ext/jni/src/org/sqlite/jni/fts5/XTokenizeCallback.java 1efd1220ea328a32f2d2a1b16c735864159e929480f71daad4de9d5944839167 F ext/jni/src/org/sqlite/jni/fts5/fts5_api.java e2ad9bc06a9d307e0a6221c11645783898906455a92b1f7d5ec9b9ff1af1b8ea F ext/jni/src/org/sqlite/jni/fts5/fts5_extension_function.java 1fe0f5692c1d67475d12b067f0469949073446f18c56eba5ee5da6ddd06db9b9 @@ -288,8 +289,7 @@ F ext/jni/src/org/sqlite/jni/sqlite3_blob.java fc631ad52feea6e3d1d62b0d0e769ac10 F ext/jni/src/org/sqlite/jni/sqlite3_context.java 66ca95ce904044263a4aff684abe262d56f73e6b06bca6cf650761d79d7779ad F ext/jni/src/org/sqlite/jni/sqlite3_stmt.java cf7f076d8b0f2a23faebbd64e12e8b3dd1977378ca828245d186f1b98458127d F ext/jni/src/org/sqlite/jni/sqlite3_value.java 3d1d4903e267bc0bc81d57d21f5e85978eff389a1a6ed46726dbe75f85e6914a -F ext/jni/src/org/sqlite/jni/tester/SQLTester.java 9892797db57c6e01f0c1601b5866474b6c046f0fd6c5b64f411e5815c941040e -F ext/jni/src/org/sqlite/jni/tester/test-script-interpreter.md f9f25126127045d051e918fe59004a1485311c50a13edbf18c79a6ff9160030e +F ext/jni/src/org/sqlite/jni/test-script-interpreter.md f9f25126127045d051e918fe59004a1485311c50a13edbf18c79a6ff9160030e w ext/jni/src/org/sqlite/jni/tester/test-script-interpreter.md F ext/jni/src/tests/000-000-sanity.test c3427a0e0ac84d7cbe4c95fdc1cd4b61f9ddcf43443408f3000139478c4dc745 F ext/jni/src/tests/000-001-ignored.test e17e874c6ab3c437f1293d88093cf06286083b65bf162317f91bbfd92f961b70 F ext/jni/src/tests/900-001-fts.test bf0ce17a8d082773450e91f2388f5bbb2dfa316d0b676c313c637a91198090f0 @@ -2122,8 +2122,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0 -P 0a873de76c0cbcd8e2eda3f0508e427f1dcb32b01798687c0545acfe10102179 -R 85f58d35114ff163d0c32151ce0233f3 +P 6c63987e893357dc8b10decaa96c30fb37b75481640a303e77a0d8224354491e +R 14bbbf737f96564a41d23e210ece88e9 U stephan -Z 80cc94af82e9bdc221a901efb80be260 +Z 2d0b47023fa8f7cf28e0da2e32c6e917 # Remove this line to create a well-formed Fossil manifest. diff --git a/manifest.uuid b/manifest.uuid index 2411bbf400..e344029e30 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -6c63987e893357dc8b10decaa96c30fb37b75481640a303e77a0d8224354491e \ No newline at end of file +ec82f7251acab7df40755ef5f456f36fe49b59e63a20be59bd610fc4280ba8cd \ No newline at end of file