mirror of
https://github.com/sqlite/sqlite.git
synced 2025-07-30 19:03:16 +03:00
Re-order some out-of-order JNI APIs. Correct JNI sqlite3_open_v2() behavior in a particular OOM condition.
FossilOrigin-Name: 49d3be002ce5e594027f47a3ba448f0c21ec68b416b8df997497753f53e3ca52
This commit is contained in:
@ -1220,8 +1220,7 @@ static void * NativePointerHolder_get(JNIEnv * env, jobject pObj, S3NphRef const
|
|||||||
** OOM. pDb MUST, on success of the calling operation, subsequently be
|
** OOM. pDb MUST, on success of the calling operation, subsequently be
|
||||||
** associated with jDb via NativePointerHolder_set().
|
** associated with jDb via NativePointerHolder_set().
|
||||||
*/
|
*/
|
||||||
static S3JniDb * S3JniDb_alloc(JNIEnv * const env, sqlite3 *pDb,
|
static S3JniDb * S3JniDb_alloc(JNIEnv * const env, jobject jDb){
|
||||||
jobject jDb){
|
|
||||||
S3JniDb * rv;
|
S3JniDb * rv;
|
||||||
S3JniMutex_S3JniDb_enter;
|
S3JniMutex_S3JniDb_enter;
|
||||||
if( SJG.perDb.aFree ){
|
if( SJG.perDb.aFree ){
|
||||||
@ -1250,7 +1249,6 @@ static S3JniDb * S3JniDb_alloc(JNIEnv * const env, sqlite3 *pDb,
|
|||||||
rv->pNext->pPrev = rv;
|
rv->pNext->pPrev = rv;
|
||||||
}
|
}
|
||||||
rv->jDb = S3JniRefGlobal(jDb);
|
rv->jDb = S3JniRefGlobal(jDb);
|
||||||
rv->pDb = pDb;
|
|
||||||
}
|
}
|
||||||
S3JniMutex_S3JniDb_leave;
|
S3JniMutex_S3JniDb_leave;
|
||||||
return rv;
|
return rv;
|
||||||
@ -2700,6 +2698,37 @@ error_cleanup:
|
|||||||
return (jint)rc;
|
return (jint)rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
S3JniApi(sqlite3_db_filename(),jstring,1db_1filename)(
|
||||||
|
JniArgsEnvClass, jobject jDb, jstring jDbName
|
||||||
|
){
|
||||||
|
S3JniDb * const ps = S3JniDb_from_java(jDb);
|
||||||
|
char *zDbName;
|
||||||
|
jstring jRv = 0;
|
||||||
|
int nStr = 0;
|
||||||
|
|
||||||
|
if( !ps || !jDbName ){
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
zDbName = s3jni_jstring_to_utf8(env, jDbName, &nStr);
|
||||||
|
if( zDbName ){
|
||||||
|
char const * zRv = sqlite3_db_filename(ps->pDb, zDbName);
|
||||||
|
sqlite3_free(zDbName);
|
||||||
|
if( zRv ){
|
||||||
|
jRv = s3jni_utf8_to_jstring(env, zRv, -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return jRv;
|
||||||
|
}
|
||||||
|
|
||||||
|
S3JniApi(sqlite3_db_handle(),jobject,1db_1handle)(
|
||||||
|
JniArgsEnvClass, jobject jpStmt
|
||||||
|
){
|
||||||
|
sqlite3_stmt * const pStmt = PtrGet_sqlite3_stmt(jpStmt);
|
||||||
|
sqlite3 * const pDb = pStmt ? sqlite3_db_handle(pStmt) : 0;
|
||||||
|
S3JniDb * const ps = pDb ? S3JniDb_from_c(pDb) : 0;
|
||||||
|
return ps ? ps->jDb : 0;
|
||||||
|
}
|
||||||
|
|
||||||
S3JniApi(sqlite3_db_config() /*for MAINDBNAME*/,
|
S3JniApi(sqlite3_db_config() /*for MAINDBNAME*/,
|
||||||
jint,1db_1config__Lorg_sqlite_jni_sqlite3_2ILjava_lang_String_2
|
jint,1db_1config__Lorg_sqlite_jni_sqlite3_2ILjava_lang_String_2
|
||||||
)(JniArgsEnvClass, jobject jDb, jint op, jstring jStr){
|
)(JniArgsEnvClass, jobject jDb, jint op, jstring jStr){
|
||||||
@ -2789,37 +2818,6 @@ JniDecl(jint,1db_1config__Lorg_sqlite_jni_sqlite3_2IILorg_sqlite_jni_OutputPoint
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
S3JniApi(sqlite3_db_filename(),jstring,1db_1filename)(
|
|
||||||
JniArgsEnvClass, jobject jDb, jstring jDbName
|
|
||||||
){
|
|
||||||
S3JniDb * const ps = S3JniDb_from_java(jDb);
|
|
||||||
char *zDbName;
|
|
||||||
jstring jRv = 0;
|
|
||||||
int nStr = 0;
|
|
||||||
|
|
||||||
if( !ps || !jDbName ){
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
zDbName = s3jni_jstring_to_utf8(env, jDbName, &nStr);
|
|
||||||
if( zDbName ){
|
|
||||||
char const * zRv = sqlite3_db_filename(ps->pDb, zDbName);
|
|
||||||
sqlite3_free(zDbName);
|
|
||||||
if( zRv ){
|
|
||||||
jRv = s3jni_utf8_to_jstring(env, zRv, -1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return jRv;
|
|
||||||
}
|
|
||||||
|
|
||||||
S3JniApi(sqlite3_db_handle(),jobject,1db_1handle)(
|
|
||||||
JniArgsEnvClass, jobject jpStmt
|
|
||||||
){
|
|
||||||
sqlite3_stmt * const pStmt = PtrGet_sqlite3_stmt(jpStmt);
|
|
||||||
sqlite3 * const pDb = pStmt ? sqlite3_db_handle(pStmt) : 0;
|
|
||||||
S3JniDb * const ps = pDb ? S3JniDb_from_c(pDb) : 0;
|
|
||||||
return ps ? ps->jDb : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
S3JniApi(sqlite3_db_status(),jint,1db_1status)(
|
S3JniApi(sqlite3_db_status(),jint,1db_1status)(
|
||||||
JniArgsEnvClass, jobject jDb, jint op, jobject jOutCurrent,
|
JniArgsEnvClass, jobject jDb, jint op, jobject jOutCurrent,
|
||||||
@ -2918,10 +2916,9 @@ S3JniApi(sqlite3_is_interrupted(),jboolean,1is_1interrupted)(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Uncaches the current JNIEnv from the S3JniGlobal state, clearing any
|
** Uncaches the current JNIEnv from the S3JniGlobal state, clearing
|
||||||
** resources owned by that cache entry and making that slot available
|
** any resources owned by that cache entry and making that slot
|
||||||
** for re-use. It is important that the Java-side decl of this
|
** available for re-use.
|
||||||
** function be declared as synchronous.
|
|
||||||
*/
|
*/
|
||||||
JniDecl(jboolean,1java_1uncache_1thread)(JniArgsEnvClass){
|
JniDecl(jboolean,1java_1uncache_1thread)(JniArgsEnvClass){
|
||||||
int rc;
|
int rc;
|
||||||
@ -2938,7 +2935,7 @@ S3JniApi(sqlite3_last_insert_rowid(),jlong,1last_1insert_1rowid)(
|
|||||||
return (jlong)sqlite3_last_insert_rowid(PtrGet_sqlite3(jpDb));
|
return (jlong)sqlite3_last_insert_rowid(PtrGet_sqlite3(jpDb));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pre-open() code common to sqlite3_open(_v2)(). */
|
/* Pre-open() code common to sqlite3_open[_v2](). */
|
||||||
static int s3jni_open_pre(JNIEnv * const env, S3JniEnv **jc,
|
static int s3jni_open_pre(JNIEnv * const env, S3JniEnv **jc,
|
||||||
jstring jDbName, char **zDbName,
|
jstring jDbName, char **zDbName,
|
||||||
S3JniDb ** ps){
|
S3JniDb ** ps){
|
||||||
@ -2961,7 +2958,7 @@ static int s3jni_open_pre(JNIEnv * const env, S3JniEnv **jc,
|
|||||||
rc = SQLITE_NOMEM;
|
rc = SQLITE_NOMEM;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
*ps = S3JniDb_alloc(env, 0, jDb);
|
*ps = S3JniDb_alloc(env, jDb);
|
||||||
if( *ps ){
|
if( *ps ){
|
||||||
(*jc)->pdbOpening = *ps;
|
(*jc)->pdbOpening = *ps;
|
||||||
}else{
|
}else{
|
||||||
@ -2981,6 +2978,9 @@ end:
|
|||||||
** else ps is associated with *ppDb. If *ppDb is not NULL then
|
** else ps is associated with *ppDb. If *ppDb is not NULL then
|
||||||
** ps->jDb is stored in jOut (an OutputPointer.sqlite3 instance).
|
** ps->jDb is stored in jOut (an OutputPointer.sqlite3 instance).
|
||||||
**
|
**
|
||||||
|
** Must be called if s3jni_open_pre() succeeds and must not be called
|
||||||
|
** if it doesn't.
|
||||||
|
**
|
||||||
** Returns theRc.
|
** Returns theRc.
|
||||||
*/
|
*/
|
||||||
static int s3jni_open_post(JNIEnv * const env, S3JniEnv * const jc,
|
static int s3jni_open_post(JNIEnv * const env, S3JniEnv * const jc,
|
||||||
@ -3031,16 +3031,18 @@ S3JniApi(sqlite3_open_v2(),jint,1open_1v2)(
|
|||||||
S3JniEnv * jc = 0;
|
S3JniEnv * jc = 0;
|
||||||
char *zVfs = 0;
|
char *zVfs = 0;
|
||||||
int rc = s3jni_open_pre(env, &jc, strName, &zName, &ps);
|
int rc = s3jni_open_pre(env, &jc, strName, &zName, &ps);
|
||||||
if( 0==rc && strVfs ){
|
|
||||||
zVfs = s3jni_jstring_to_utf8(env, strVfs, 0);
|
|
||||||
if( !zVfs ){
|
|
||||||
rc = SQLITE_NOMEM;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if( 0==rc ){
|
if( 0==rc ){
|
||||||
rc = sqlite3_open_v2(zName, &pOut, (int)flags, zVfs);
|
if( strVfs ){
|
||||||
|
zVfs = s3jni_jstring_to_utf8(env, strVfs, 0);
|
||||||
|
if( !zVfs ){
|
||||||
|
rc = SQLITE_NOMEM;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if( 0==rc ){
|
||||||
|
rc = sqlite3_open_v2(zName, &pOut, (int)flags, zVfs);
|
||||||
|
}
|
||||||
|
rc = s3jni_open_post(env, jc, ps, &pOut, jOut, rc);
|
||||||
}
|
}
|
||||||
rc = s3jni_open_post(env, jc, ps, &pOut, jOut, rc);
|
|
||||||
assert(rc==0 ? pOut!=0 : 1);
|
assert(rc==0 ? pOut!=0 : 1);
|
||||||
sqlite3_free(zName);
|
sqlite3_free(zName);
|
||||||
sqlite3_free(zVfs);
|
sqlite3_free(zVfs);
|
||||||
|
@ -1139,22 +1139,6 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1create_1function
|
|||||||
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1data_1count
|
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1data_1count
|
||||||
(JNIEnv *, jclass, jobject);
|
(JNIEnv *, jclass, jobject);
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: org_sqlite_jni_SQLite3Jni
|
|
||||||
* Method: sqlite3_db_filename
|
|
||||||
* Signature: (Lorg/sqlite/jni/sqlite3;Ljava/lang/String;)Ljava/lang/String;
|
|
||||||
*/
|
|
||||||
JNIEXPORT jstring JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1db_1filename
|
|
||||||
(JNIEnv *, jclass, jobject, jstring);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Class: org_sqlite_jni_SQLite3Jni
|
|
||||||
* Method: sqlite3_db_handle
|
|
||||||
* Signature: (Lorg/sqlite/jni/sqlite3_stmt;)Lorg/sqlite/jni/sqlite3;
|
|
||||||
*/
|
|
||||||
JNIEXPORT jobject JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1db_1handle
|
|
||||||
(JNIEnv *, jclass, jobject);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Class: org_sqlite_jni_SQLite3Jni
|
* Class: org_sqlite_jni_SQLite3Jni
|
||||||
* Method: sqlite3_db_config
|
* Method: sqlite3_db_config
|
||||||
@ -1171,6 +1155,22 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1db_1config__Lorg_
|
|||||||
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1db_1config__Lorg_sqlite_jni_sqlite3_2ILjava_lang_String_2
|
JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1db_1config__Lorg_sqlite_jni_sqlite3_2ILjava_lang_String_2
|
||||||
(JNIEnv *, jclass, jobject, jint, jstring);
|
(JNIEnv *, jclass, jobject, jint, jstring);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: org_sqlite_jni_SQLite3Jni
|
||||||
|
* Method: sqlite3_db_filename
|
||||||
|
* Signature: (Lorg/sqlite/jni/sqlite3;Ljava/lang/String;)Ljava/lang/String;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jstring JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1db_1filename
|
||||||
|
(JNIEnv *, jclass, jobject, jstring);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: org_sqlite_jni_SQLite3Jni
|
||||||
|
* Method: sqlite3_db_handle
|
||||||
|
* Signature: (Lorg/sqlite/jni/sqlite3_stmt;)Lorg/sqlite/jni/sqlite3;
|
||||||
|
*/
|
||||||
|
JNIEXPORT jobject JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1db_1handle
|
||||||
|
(JNIEnv *, jclass, jobject);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Class: org_sqlite_jni_SQLite3Jni
|
* Class: org_sqlite_jni_SQLite3Jni
|
||||||
* Method: sqlite3_db_status
|
* Method: sqlite3_db_status
|
||||||
|
@ -541,12 +541,6 @@ public final class SQLite3Jni {
|
|||||||
@NotNull sqlite3_stmt stmt
|
@NotNull sqlite3_stmt stmt
|
||||||
);
|
);
|
||||||
|
|
||||||
public static native String sqlite3_db_filename(
|
|
||||||
@NotNull sqlite3 db, @NotNull String dbName
|
|
||||||
);
|
|
||||||
|
|
||||||
public static native sqlite3 sqlite3_db_handle( @NotNull sqlite3_stmt stmt );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Overload for sqlite3_db_config() calls which take (int,int*)
|
Overload for sqlite3_db_config() calls which take (int,int*)
|
||||||
variadic arguments. Returns SQLITE_MISUSE if op is not one of the
|
variadic arguments. Returns SQLITE_MISUSE if op is not one of the
|
||||||
@ -567,6 +561,12 @@ public final class SQLite3Jni {
|
|||||||
@NotNull sqlite3 db, int op, @NotNull String val
|
@NotNull sqlite3 db, int op, @NotNull String val
|
||||||
);
|
);
|
||||||
|
|
||||||
|
public static native String sqlite3_db_filename(
|
||||||
|
@NotNull sqlite3 db, @NotNull String dbName
|
||||||
|
);
|
||||||
|
|
||||||
|
public static native sqlite3 sqlite3_db_handle( @NotNull sqlite3_stmt stmt );
|
||||||
|
|
||||||
public static native int sqlite3_db_status(
|
public static native int sqlite3_db_status(
|
||||||
@NotNull sqlite3 db, int op, @NotNull OutputPointer.Int32 pCurrent,
|
@NotNull sqlite3 db, int op, @NotNull OutputPointer.Int32 pCurrent,
|
||||||
@NotNull OutputPointer.Int32 pHighwater, boolean reset
|
@NotNull OutputPointer.Int32 pHighwater, boolean reset
|
||||||
|
16
manifest
16
manifest
@ -1,5 +1,5 @@
|
|||||||
C Two\ssignificant\stypo\sfixes\sfor\s[1a30919bfbb686].
|
C Re-order\ssome\sout-of-order\sJNI\sAPIs.\sCorrect\sJNI\ssqlite3_open_v2()\sbehavior\sin\sa\sparticular\sOOM\scondition.
|
||||||
D 2023-08-26T17:36:15.621
|
D 2023-08-26T18:01:36.744
|
||||||
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
|
||||||
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
|
||||||
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
|
||||||
@ -236,8 +236,8 @@ F ext/icu/sqliteicu.h fa373836ed5a1ee7478bdf8a1650689294e41d0c89c1daab26e9ae78a3
|
|||||||
F ext/jni/GNUmakefile d9244b5addf58868343a74a94faa71f829e7f40c163486d053f4b4bbea173703
|
F ext/jni/GNUmakefile d9244b5addf58868343a74a94faa71f829e7f40c163486d053f4b4bbea173703
|
||||||
F ext/jni/README.md 1332b1fa27918bd5d9ca2d0d4f3ac3a6ab86b9e3699dc5bfe32904a027f3d2a9
|
F ext/jni/README.md 1332b1fa27918bd5d9ca2d0d4f3ac3a6ab86b9e3699dc5bfe32904a027f3d2a9
|
||||||
F ext/jni/jar-dist.make 030aaa4ae71dd86e4ec5e7c1e6cd86f9dfa47c4592c070d2e35157e42498e1fa
|
F ext/jni/jar-dist.make 030aaa4ae71dd86e4ec5e7c1e6cd86f9dfa47c4592c070d2e35157e42498e1fa
|
||||||
F ext/jni/src/c/sqlite3-jni.c 96d9681396fef07c83372ce949359bf069e04cd648279760b3bd65352a3cf889
|
F ext/jni/src/c/sqlite3-jni.c 2bbd0443b336a9c4d4cfea37a254592c96cf95f18f5aad0c60ff45968311bb61
|
||||||
F ext/jni/src/c/sqlite3-jni.h a4559d325925ca4d55ca75e2054adff607fdd35c2a94fecc9f2e8f919cababed
|
F ext/jni/src/c/sqlite3-jni.h 22c6c760a31ebfc3fe13d45d2a3a4dd7c8f9c6207aeba3fdc38137452cbf3a04
|
||||||
F ext/jni/src/org/sqlite/jni/AggregateFunction.java e0aac6ccae05702f8ee779820570866a2760aaa57a73135c57c8d3580bef52d5
|
F ext/jni/src/org/sqlite/jni/AggregateFunction.java e0aac6ccae05702f8ee779820570866a2760aaa57a73135c57c8d3580bef52d5
|
||||||
F ext/jni/src/org/sqlite/jni/AuthorizerCallback.java c374bb76409cce7a0bdba94877706b59ac6127fa5d9e6af3e8058c99ce99c030
|
F ext/jni/src/org/sqlite/jni/AuthorizerCallback.java c374bb76409cce7a0bdba94877706b59ac6127fa5d9e6af3e8058c99ce99c030
|
||||||
F ext/jni/src/org/sqlite/jni/AutoExtensionCallback.java 4290d8b0937b07d466b50e6ca4136cec037f3ce658277af0d0c2d371e5f4b459
|
F ext/jni/src/org/sqlite/jni/AutoExtensionCallback.java 4290d8b0937b07d466b50e6ca4136cec037f3ce658277af0d0c2d371e5f4b459
|
||||||
@ -262,7 +262,7 @@ F ext/jni/src/org/sqlite/jni/ResultCode.java ba701f20213a5f259e94cfbfdd36eb7ac7c
|
|||||||
F ext/jni/src/org/sqlite/jni/RollbackHookCallback.java be7f7a26d1102fb514d835e11198d51302af8053d97188bfb2e34c2133208568
|
F ext/jni/src/org/sqlite/jni/RollbackHookCallback.java be7f7a26d1102fb514d835e11198d51302af8053d97188bfb2e34c2133208568
|
||||||
F ext/jni/src/org/sqlite/jni/SQLFunction.java d060f302b2cc4cf7a4f5a6b2d36458a2e6fc9648374b5d09c36a43665af41207
|
F ext/jni/src/org/sqlite/jni/SQLFunction.java d060f302b2cc4cf7a4f5a6b2d36458a2e6fc9648374b5d09c36a43665af41207
|
||||||
F ext/jni/src/org/sqlite/jni/SQLite3CallbackProxy.java 13c4ea6f35871261eba63fa4117715515e0beecbdebfb879ec5b1f340ed36904
|
F ext/jni/src/org/sqlite/jni/SQLite3CallbackProxy.java 13c4ea6f35871261eba63fa4117715515e0beecbdebfb879ec5b1f340ed36904
|
||||||
F ext/jni/src/org/sqlite/jni/SQLite3Jni.java 9368994e8da4f8012466e4314f484818b8247c7417904fb04ffc87142c87aed5
|
F ext/jni/src/org/sqlite/jni/SQLite3Jni.java 663600b216653850bfe4e2c00cfc8da12db94b3f36c4b79f6a7d1bde6ad0b484
|
||||||
F ext/jni/src/org/sqlite/jni/ScalarFunction.java 21301a947e49f0dd9c682dfe2cc8a6518226c837253dd791cd512f847eeca52c
|
F ext/jni/src/org/sqlite/jni/ScalarFunction.java 21301a947e49f0dd9c682dfe2cc8a6518226c837253dd791cd512f847eeca52c
|
||||||
F ext/jni/src/org/sqlite/jni/Tester1.java 37b46dc15ac8fbeb916dcf1f7771023d2be025d05422d725d5891935eda506ac
|
F ext/jni/src/org/sqlite/jni/Tester1.java 37b46dc15ac8fbeb916dcf1f7771023d2be025d05422d725d5891935eda506ac
|
||||||
F ext/jni/src/org/sqlite/jni/TesterFts5.java 6f135c60e24c89e8eecb9fe61dde0f3bb2906de668ca6c9186bcf34bdaf94629
|
F ext/jni/src/org/sqlite/jni/TesterFts5.java 6f135c60e24c89e8eecb9fe61dde0f3bb2906de668ca6c9186bcf34bdaf94629
|
||||||
@ -2103,8 +2103,8 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
|
|||||||
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
|
||||||
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
|
||||||
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
|
||||||
P 1a30919bfbb686464e8020e684120d22dd2375b910a17446b75452fda96a7449
|
P 6a6ee6dd54ec1a1dc7fb7d2f331951525d394a8362aef911f62878ac3961898f
|
||||||
R daab7741306924c5da59534b151007f9
|
R 802391c6b76d7ea843bfc8720b7feccc
|
||||||
U stephan
|
U stephan
|
||||||
Z 2446667f02ee59a9738709662543977d
|
Z 04c34431ca2b1ac34ae8b832852ca4c0
|
||||||
# Remove this line to create a well-formed Fossil manifest.
|
# Remove this line to create a well-formed Fossil manifest.
|
||||||
|
@ -1 +1 @@
|
|||||||
6a6ee6dd54ec1a1dc7fb7d2f331951525d394a8362aef911f62878ac3961898f
|
49d3be002ce5e594027f47a3ba448f0c21ec68b416b8df997497753f53e3ca52
|
Reference in New Issue
Block a user