#define S3JniLongPtr_T(T,JLongPtr) (T*)(JLongPtr)
#define S3JniLongPtr_sqlite3(JLongPtr) S3JniLongPtr_T(sqlite3,JLongPtr)
#define S3JniLongPtr_sqlite3_backup(JLongPtr) S3JniLongPtr_T(sqlite3_backup,JLongPtr)
+#define S3JniLongPtr_sqlite3_blob(JLongPtr) S3JniLongPtr_T(sqlite3_blob,JLongPtr)
#define S3JniLongPtr_sqlite3_stmt(JLongPtr) S3JniLongPtr_T(sqlite3_stmt,JLongPtr)
/*
}
S3JniApi(sqlite3_blob_bytes(),jint,1blob_1bytes)(
- JniArgsEnvClass, jobject jBlob
+ JniArgsEnvClass, jlong jpBlob
){
- return sqlite3_blob_bytes(PtrGet_sqlite3_blob(jBlob));
+ return sqlite3_blob_bytes(S3JniLongPtr_sqlite3_blob(jpBlob));
}
S3JniApi(sqlite3_blob_close(),jint,1blob_1close)(
- JniArgsEnvClass, jobject jBlob
+ JniArgsEnvClass, jlong jpBlob
){
- sqlite3_blob * const b = PtrGet_sqlite3_blob(jBlob);
- jint const rc = b ? (jint)sqlite3_blob_close(b) : SQLITE_MISUSE;
- if( b ){
- NativePointerHolder_set(S3JniNph(sqlite3_blob), jBlob, 0);
- }
- return rc;
+ sqlite3_blob * const b = S3JniLongPtr_sqlite3_blob(jpBlob);
+ return b ? (jint)sqlite3_blob_close(b) : SQLITE_MISUSE;
}
S3JniApi(sqlite3_blob_open(),jint,1blob_1open)(
- JniArgsEnvClass, jobject jDb, jstring jDbName, jstring jTbl, jstring jCol,
+ JniArgsEnvClass, jlong jpDb, jstring jDbName, jstring jTbl, jstring jCol,
jlong jRowId, jint flags, jobject jOut
){
- sqlite3 * const db = PtrGet_sqlite3(jDb);
+ sqlite3 * const db = S3JniLongPtr_sqlite3(jpDb);
sqlite3_blob * pBlob = 0;
char * zDbName = 0, * zTableName = 0, * zColumnName = 0;
int rc;
}
S3JniApi(sqlite3_blob_read(),jint,1blob_1read)(
- JniArgsEnvClass, jobject jBlob, jbyteArray jTgt, jint iOffset
+ JniArgsEnvClass, jlong jpBlob, jbyteArray jTgt, jint iOffset
){
jbyte * const pBa = s3jni_jbyteArray_bytes(jTgt);
int rc = jTgt ? (pBa ? SQLITE_MISUSE : SQLITE_NOMEM) : SQLITE_MISUSE;
if( pBa ){
jsize const nTgt = (*env)->GetArrayLength(env, jTgt);
- rc = sqlite3_blob_read(PtrGet_sqlite3_blob(jBlob), pBa,
+ rc = sqlite3_blob_read(S3JniLongPtr_sqlite3_blob(jpBlob), pBa,
(int)nTgt, (int)iOffset);
if( 0==rc ){
s3jni_jbyteArray_commit(jTgt, pBa);
}
S3JniApi(sqlite3_blob_reopen(),jint,1blob_1reopen)(
- JniArgsEnvClass, jobject jBlob, jlong iNewRowId
+ JniArgsEnvClass, jlong jpBlob, jlong iNewRowId
){
- return (jint)sqlite3_blob_reopen(PtrGet_sqlite3_blob(jBlob),
+ return (jint)sqlite3_blob_reopen(S3JniLongPtr_sqlite3_blob(jpBlob),
(sqlite3_int64)iNewRowId);
}
S3JniApi(sqlite3_blob_write(),jint,1blob_1write)(
- JniArgsEnvClass, jobject jBlob, jbyteArray jBa, jint iOffset
+ JniArgsEnvClass, jlong jpBlob, jbyteArray jBa, jint iOffset
){
- sqlite3_blob * const b = PtrGet_sqlite3_blob(jBlob);
+ sqlite3_blob * const b = S3JniLongPtr_sqlite3_blob(jpBlob);
jbyte * const pBuf = b ? s3jni_jbyteArray_bytes(jBa) : 0;
const jsize nBa = pBuf ? (*env)->GetArrayLength(env, jBa) : 0;
int rc = SQLITE_MISUSE;
S3JniDeclLocal_env;
S3JniHook hook;
- S3JniHook_localdup(&ps->hooks.busyHandler, &hook );
+ S3JniHook_localdup(&ps->hooks.busyHandler, &hook);
if( hook.jObj ){
rc = (*env)->CallIntMethod(env, hook.jObj,
hook.midCallback, (jint)n);
}
S3JniApi(sqlite3_busy_handler(),jint,1busy_1handler)(
- JniArgsEnvClass, jobject jDb, jobject jBusy
+ JniArgsEnvClass, jlong jpDb, jobject jBusy
){
- S3JniDb * const ps = S3JniDb_from_java(jDb);
+ S3JniDb * const ps = S3JniDb_from_c(S3JniLongPtr_sqlite3(jpDb));
S3JniHook * const pHook = ps ? &ps->hooks.busyHandler : 0;
S3JniHook hook = S3JniHook_empty;
int rc = 0;
}
S3JniApi(sqlite3_busy_timeout(),jint,1busy_1timeout)(
- JniArgsEnvClass, jobject jDb, jint ms
+ JniArgsEnvClass, jlong jpDb, jint ms
){
- S3JniDb * const ps = S3JniDb_from_java(jDb);
+ S3JniDb * const ps = S3JniDb_from_c(S3JniLongPtr_sqlite3(jpDb));
int rc = SQLITE_MISUSE;
if( ps ){
S3JniDb_mutex_enter;
}
/* Wrapper for sqlite3_close(_v2)(). */
-static jint s3jni_close_db(JNIEnv * const env, jobject jDb, int version){
+static jint s3jni_close_db(JNIEnv * const env, jlong jpDb, int version){
int rc = 0;
- S3JniDb * const ps = S3JniDb_from_java(jDb);
+ S3JniDb * const ps = S3JniDb_from_c(S3JniLongPtr_sqlite3(jpDb));
assert(version == 1 || version == 2);
if( ps ){
rc = 1==version
? (jint)sqlite3_close(ps->pDb)
: (jint)sqlite3_close_v2(ps->pDb);
- if( 0==rc ){
- NativePointerHolder_set(S3JniNph(sqlite3), jDb, 0);
- }
}
return (jint)rc;
}
-S3JniApi(sqlite3_close_v2(),jint,1close_1v2)(
- JniArgsEnvClass, jobject pDb
-){
- return s3jni_close_db(env, pDb, 2);
+S3JniApi(sqlite3_close(),jint,1close)(JniArgsEnvClass, jlong pDb){
+ return s3jni_close_db(env, pDb, 1);
}
-S3JniApi(sqlite3_close(),jint,1close)(
- JniArgsEnvClass, jobject pDb
-){
- return s3jni_close_db(env, pDb, 1);
+S3JniApi(sqlite3_close_v2(),jint,1close_1v2)(JniArgsEnvClass, jlong pDb){
+ return s3jni_close_db(env, pDb, 2);
}
/*
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_blob_bytes
- * Signature: (Lorg/sqlite/jni/sqlite3_blob;)I
+ * Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1blob_1bytes
- (JNIEnv *, jclass, jobject);
+ (JNIEnv *, jclass, jlong);
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_blob_close
- * Signature: (Lorg/sqlite/jni/sqlite3_blob;)I
+ * Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1blob_1close
- (JNIEnv *, jclass, jobject);
+ (JNIEnv *, jclass, jlong);
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_blob_open
- * Signature: (Lorg/sqlite/jni/sqlite3;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;JILorg/sqlite/jni/OutputPointer/sqlite3_blob;)I
+ * Signature: (JLjava/lang/String;Ljava/lang/String;Ljava/lang/String;JILorg/sqlite/jni/OutputPointer/sqlite3_blob;)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1blob_1open
- (JNIEnv *, jclass, jobject, jstring, jstring, jstring, jlong, jint, jobject);
+ (JNIEnv *, jclass, jlong, jstring, jstring, jstring, jlong, jint, jobject);
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_blob_read
- * Signature: (Lorg/sqlite/jni/sqlite3_blob;[BI)I
+ * Signature: (J[BI)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1blob_1read
- (JNIEnv *, jclass, jobject, jbyteArray, jint);
+ (JNIEnv *, jclass, jlong, jbyteArray, jint);
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_blob_reopen
- * Signature: (Lorg/sqlite/jni/sqlite3_blob;J)I
+ * Signature: (JJ)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1blob_1reopen
- (JNIEnv *, jclass, jobject, jlong);
+ (JNIEnv *, jclass, jlong, jlong);
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_blob_write
- * Signature: (Lorg/sqlite/jni/sqlite3_blob;[BI)I
+ * Signature: (J[BI)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1blob_1write
- (JNIEnv *, jclass, jobject, jbyteArray, jint);
+ (JNIEnv *, jclass, jlong, jbyteArray, jint);
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_busy_handler
- * Signature: (Lorg/sqlite/jni/sqlite3;Lorg/sqlite/jni/BusyHandlerCallback;)I
+ * Signature: (JLorg/sqlite/jni/BusyHandlerCallback;)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1busy_1handler
- (JNIEnv *, jclass, jobject, jobject);
+ (JNIEnv *, jclass, jlong, jobject);
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_busy_timeout
- * Signature: (Lorg/sqlite/jni/sqlite3;I)I
+ * Signature: (JI)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1busy_1timeout
- (JNIEnv *, jclass, jobject, jint);
+ (JNIEnv *, jclass, jlong, jint);
/*
* Class: org_sqlite_jni_SQLite3Jni
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_close
- * Signature: (Lorg/sqlite/jni/sqlite3;)I
+ * Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1close
- (JNIEnv *, jclass, jobject);
+ (JNIEnv *, jclass, jlong);
/*
* Class: org_sqlite_jni_SQLite3Jni
* Method: sqlite3_close_v2
- * Signature: (Lorg/sqlite/jni/sqlite3;)I
+ * Signature: (J)I
*/
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1close_1v2
- (JNIEnv *, jclass, jobject);
+ (JNIEnv *, jclass, jlong);
/*
* Class: org_sqlite_jni_SQLite3Jni
}
@Canonical
- public static native int sqlite3_blob_bytes(@NotNull sqlite3_blob blob);
+ private static native int sqlite3_blob_bytes(@NotNull long ptrToBlob);
@Canonical
- public static native int sqlite3_blob_close(@Nullable sqlite3_blob blob);
+ public static int sqlite3_blob_bytes(@NotNull sqlite3_blob blob){
+ return sqlite3_blob_bytes(blob.getNativePointer());
+ }
@Canonical
- public static native int sqlite3_blob_open(
- @NotNull sqlite3 db, @NotNull String dbName,
+ static native int sqlite3_blob_close(@Nullable long ptrToBlob);
+
+ @Canonical
+ public static int sqlite3_blob_close(@Nullable sqlite3_blob blob){
+ return sqlite3_blob_close(blob.clearNativePointer());
+ }
+
+ @Canonical
+ private 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
);
+ @Canonical
+ public static int sqlite3_blob_open(
+ @NotNull sqlite3 db, @NotNull String dbName,
+ @NotNull String tableName, @NotNull String columnName,
+ long iRow, int flags, @NotNull OutputPointer.sqlite3_blob out
+ ){
+ return sqlite3_blob_open(db.getNativePointer(), dbName, tableName,
+ columnName, iRow, flags, out);
+ }
+
/**
Convenience overload.
*/
@NotNull String tableName, @NotNull String columnName,
long iRow, int flags ){
final OutputPointer.sqlite3_blob out = new OutputPointer.sqlite3_blob();
- sqlite3_blob_open(db, dbName, tableName, columnName, iRow, flags, out);
+ sqlite3_blob_open(db.getNativePointer(), dbName, tableName, columnName,
+ iRow, flags, out);
return out.take();
};
@Canonical
- public static native int sqlite3_blob_read(
+ private static native int sqlite3_blob_read(
+ @NotNull long ptrToBlob, @NotNull byte[] target, int iOffset
+ );
+
+ @Canonical
+ public static int sqlite3_blob_read(
@NotNull sqlite3_blob b, @NotNull byte[] target, int iOffset
+ ){
+ return sqlite3_blob_read(b.getNativePointer(), target, iOffset);
+ }
+
+ @Canonical
+ private static native int sqlite3_blob_reopen(
+ @NotNull long ptrToBlob, long newRowId
);
@Canonical
- public static native int sqlite3_blob_reopen(
- @NotNull sqlite3_blob out, long newRowId
+ public static int sqlite3_blob_reopen(@NotNull sqlite3_blob b, long newRowId){
+ return sqlite3_blob_reopen(b.getNativePointer(), newRowId);
+ }
+
+ @Canonical
+ private static native int sqlite3_blob_write(
+ @NotNull long ptrToBlob, @NotNull byte[] bytes, int iOffset
);
@Canonical
- public static native int sqlite3_blob_write(
- @NotNull sqlite3_blob out, @NotNull byte[] bytes, int iOffset
+ public static int sqlite3_blob_write(
+ @NotNull sqlite3_blob b, @NotNull byte[] bytes, int iOffset
+ ){
+ return sqlite3_blob_write(b.getNativePointer(), bytes, iOffset);
+ }
+
+ @Canonical
+ private static native int sqlite3_busy_handler(
+ @NotNull long ptrToDb, @Nullable BusyHandlerCallback handler
);
/**
function. Pass it a null handler to clear the busy handler.
*/
@Canonical
- public static native int sqlite3_busy_handler(
+ public static int sqlite3_busy_handler(
@NotNull sqlite3 db, @Nullable BusyHandlerCallback handler
- );
+ ){
+ return sqlite3_busy_handler(db.getNativePointer(), handler);
+ }
@Canonical
- public static native int sqlite3_busy_timeout(
- @NotNull sqlite3 db, int ms
- );
+ private static native int sqlite3_busy_timeout(@NotNull long ptrToDb, int ms);
+
+ @Canonical
+ public static int sqlite3_busy_timeout(@NotNull sqlite3 db, int ms){
+ return sqlite3_busy_timeout(db.getNativePointer(), ms);
+ }
@Canonical
public static native boolean sqlite3_cancel_auto_extension(
);
@Canonical
- public static native int sqlite3_close(
- @Nullable sqlite3 db
- );
+ private static native int sqlite3_close(@Nullable long ptrToDb);
@Canonical
- public static native int sqlite3_close_v2(
- @Nullable sqlite3 db
- );
+ public static int sqlite3_close(@Nullable sqlite3 db){
+ final int rc = sqlite3_close(db.getNativePointer());
+ if( 0==rc ) db.clearNativePointer();
+ return rc;
+ }
+
+ @Canonical
+ static native int sqlite3_close_v2(@Nullable long ptrToDb);
+
+ @Canonical
+ public static int sqlite3_close_v2(@Nullable sqlite3 db){
+ return sqlite3_close_v2(db.clearNativePointer());
+ }
@Canonical
public static native byte[] sqlite3_column_blob(
public static native int sqlite3_error_offset(@NotNull sqlite3 db);
@Canonical
- private static native int sqlite3_finalize(long ptrToStmt);
+ static native int sqlite3_finalize(long ptrToStmt);
@Canonical
public static int sqlite3_finalize(@NotNull sqlite3_stmt stmt){
@Override protected void finalize(){
//System.out.println(this+".finalize()");
- SQLite3Jni.sqlite3_close_v2(this);
+ SQLite3Jni.sqlite3_close_v2(this.clearNativePointer());
}
@Override public void close(){
- SQLite3Jni.sqlite3_close_v2(this);
+ SQLite3Jni.sqlite3_close_v2(this.clearNativePointer());
}
}
simply provide a type-safe way to communicate it between Java and C
via JNI.
*/
-public final class sqlite3_blob extends NativePointerHolder<sqlite3_blob> {
+public final class sqlite3_blob extends NativePointerHolder<sqlite3_blob>
+ implements AutoCloseable {
// Only invoked from JNI.
private sqlite3_blob(){}
+
+ @Override public void close(){
+ SQLite3Jni.sqlite3_blob_close(this.clearNativePointer());
+ }
+
}
//For as-yet-unknown reasons, this triggers a JVM crash.
//@Override protected void finalize(){
- // SQLite3Jni.sqlite3_finalize(this);
+ // SQLite3Jni.sqlite3_finalize(this.clearNativePointer());
//}
@Override public void close(){
- SQLite3Jni.sqlite3_finalize(this);
+ SQLite3Jni.sqlite3_finalize(this.clearNativePointer());
}
}
-C Adapt\sJNI\ssqlite3_bind_...()\sbindings\sto\sthe\snew\spointer-passing\smethod\sand\scorrect\sthe\smapping\sof\ssqlite3_bind_zeroblob64()\sto\suse\szeroblob64()\sinstead\sof\szeroblob().\sRelated\sinternal\sAPI\srenaming.
-D 2023-09-27T11:01:32.787
+C Adapted\sJNI\ssqlite3_blob_...()\sand\ssqlite3_close...()\sto\sthe\snew\spointer-passing\smechanism.
+D 2023-09-27T14:41:49.881
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/jni/GNUmakefile 42e00052401b6dd41c0cdd53b31450606ea37486283abdb038dff9be74bff71e
F ext/jni/README.md 9fceaeb17cecdc5d699dfc83c0cbc3a03fdb3b86bf676381894166c73375ee75
F ext/jni/jar-dist.make 030aaa4ae71dd86e4ec5e7c1e6cd86f9dfa47c4592c070d2e35157e42498e1fa
-F ext/jni/src/c/sqlite3-jni.c 7e1e0cf2f06a1d6c813fd3b684b5712dc8cccc6927d5f5d2b89d796f75799fb1
-F ext/jni/src/c/sqlite3-jni.h d503e60cdb9ce98f19d7bdd17a8f1b911931b6dddcc80ebef10c8160a6daab0b
+F ext/jni/src/c/sqlite3-jni.c 2c36a16445e2e39e899b2b51f1d1b5d0f42e3008bfcd5c996fdf606d4429af72
+F ext/jni/src/c/sqlite3-jni.h 8d66d189ac58f000b1143da7631fb30abd4554461369fedaa8a7c1ac5462a530
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
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 24ca37368946b4fceabac1913c7a21dbe2a4a9f5db55350b4df2b45d169b4e5f
+F ext/jni/src/org/sqlite/jni/SQLite3Jni.java 51a70421655f8663439037606d1cd5feb5102e032d3e851d860a3dac2dc4e6c0
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/fts5/fts5_extension_function.java 1fe0f5692c1d67475d12b067f0469949073446f18c56eba5ee5da6ddd06db9b9
F ext/jni/src/org/sqlite/jni/fts5/fts5_tokenizer.java ea993738b851038c16d98576abd0db3d6028a231f075a394fb8a78c7834d0f6c
F ext/jni/src/org/sqlite/jni/package-info.java a3946db2504de747a1993c4f6e8ce604bec5a8e5a134b292c3b07527bc321a99
-F ext/jni/src/org/sqlite/jni/sqlite3.java 5e56a799ced58ea69e8bcad20c29a61fce32f21a7f4fb3e2702337cf8aa1a06e
+F ext/jni/src/org/sqlite/jni/sqlite3.java 5cd95c182a38b874ad973b3c16a70a69786fe82a6793abf147639803dec7ecac
F ext/jni/src/org/sqlite/jni/sqlite3_backup.java 12182124c4d4928d78db5a07ea285f1d7af04c7a148f0759a1972d5bfa87311e
-F ext/jni/src/org/sqlite/jni/sqlite3_blob.java f28a30134f2e524eb7d5ab87f57f86c90140341a6e8369ee54509ac8bb96fa82
+F ext/jni/src/org/sqlite/jni/sqlite3_blob.java fc631ad52feea6e3d1d62b0d0e769ac107c01bc0ddd20eb512aff07b428cda6d
F ext/jni/src/org/sqlite/jni/sqlite3_context.java 66ca95ce904044263a4aff684abe262d56f73e6b06bca6cf650761d79d7779ad
-F ext/jni/src/org/sqlite/jni/sqlite3_stmt.java 36ecee9bdde2e70c7276d1c22b48fd9c40a77412e8e0694e9c09910997d6fb4f
+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 vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P bccdfeb9efde20410bde545893fb98ce5c0c4d04a8e7797b868ba8994120e1db
-R 07ea1023a2462cb72e478a493540d516
+P 980d559fff6e55d1e2ef39f242a8a09313a936cfb141807db475bcceff924869
+R d927af0037b6061c9d963a62e64650b9
U stephan
-Z 250cebc4fc9c64e8ca5d6b6a65662ef8
+Z 1d6d1018657afbb7fe95c6220da9d8bf
# Remove this line to create a well-formed Fossil manifest.
-980d559fff6e55d1e2ef39f242a8a09313a936cfb141807db475bcceff924869
\ No newline at end of file
+0b22c8ef93e5ccd45316099fb8575e27620158b1992c0c70fe0348cfc10147f8
\ No newline at end of file