#ifdef SQLITE_ENABLE_FTS5
jobject jFtsApi /* global ref to s3jni_fts5_api_from_db() */;
#endif
- S3JniDb * pNext /* Next entry in the available/free list */;
- S3JniDb * pPrev /* Previous entry in the available/free list */;
+ S3JniDb * pNext /* Next entry in SJG.perDb.aFree or SJG.perDb.aHead */;
+ S3JniDb * pPrev /* Previous entry in SJG.perDb.aFree or SJG.perDb.aHead */;
};
/*
** a NULL db, in which case free pdbOpening.
*/
S3JniDb * pdbOpening;
- S3JniEnv * pPrev /* Previous entry in the linked list */;
- S3JniEnv * pNext /* Next entry in the linked list */;
+ S3JniEnv * pNext /* Next entry in SJG.envCache.aHead or
+ SJG.envCache.aFree */;
};
/*
*/
typedef struct S3JniUdf S3JniUdf;
struct S3JniUdf {
- jobject jObj /* SQLFunction instance */;
- char * zFuncName /* Only for error reporting and debug logging */;
- enum UDFType type;
+ jobject jObj /* SQLFunction instance */;
+ char * zFuncName /* Only for error reporting and debug logging */;
+ enum UDFType type /* UDF type */;
/** Method IDs for the various UDF methods. */
- jmethodID jmidxFunc /* xFunc method */;
- jmethodID jmidxStep /* xStep method */;
- jmethodID jmidxFinal /* xFinal method */;
- jmethodID jmidxValue /* xValue method */;
- jmethodID jmidxInverse /* xInverse method */;
+ jmethodID jmidxFunc /* xFunc method (scalar) */;
+ jmethodID jmidxStep /* xStep method (aggregate/window) */;
+ jmethodID jmidxFinal /* xFinal method (aggregate/window) */;
+ jmethodID jmidxValue /* xValue method (window) */;
+ jmethodID jmidxInverse /* xInverse method (window) */;
S3JniUdf * pNext /* Next entry in SJG.udf.aFree. */;
};
s3jni_incr( &SJG.metrics.nEnvMiss );
row = SJG.envCache.aFree;
if( row ){
- assert(!row->pPrev);
SJG.envCache.aFree = row->pNext;
- if( row->pNext ) row->pNext->pPrev = 0;
}else{
row = s3jni_malloc_or_die(env, sizeof(*row));
s3jni_incr( &SJG.metrics.nEnvAlloc );
}
memset(row, 0, sizeof(*row));
row->pNext = SJG.envCache.aHead;
- if( row->pNext ) row->pNext->pPrev = row;
SJG.envCache.aHead = row;
row->env = env;
*/
static int S3JniEnv_uncache(JNIEnv * const env){
struct S3JniEnv * row;
+ struct S3JniEnv * pPrev = 0;
S3JniMutex_Env_assertLocked;
row = SJG.envCache.aHead;
- for( ; row; row = row->pNext ){
+ for( ; row; pPrev = row, row = row->pNext ){
if( row->env == env ){
break;
}
if( !row ){
return 0;
}
- if( row->pNext ) row->pNext->pPrev = row->pPrev;
- if( row->pPrev ) row->pPrev->pNext = row->pNext;
- if( SJG.envCache.aHead == row ){
- assert( !row->pPrev );
+ if( pPrev) pPrev->pNext = row->pNext;
+ else{
+ assert( SJG.envCache.aHead == row );
SJG.envCache.aHead = row->pNext;
}
memset(row, 0, sizeof(S3JniEnv));
row->pNext = SJG.envCache.aFree;
- if( row->pNext ) row->pNext->pPrev = row;
SJG.envCache.aFree = row;
return 1;
}
-C Further\sminor\sinternal\sJNI\ssimplifications.
-D 2023-08-28T22:52:04.369
+C Factor\sout\sa\ssuperfluous\sstruct\smember.
+D 2023-08-28T23:18:19.446
F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
F ext/jni/GNUmakefile 374873bf6d2cd6ceafb458e28b59140dbb074f01f7adddf7e15a3ee3daf44551
F ext/jni/README.md 1332b1fa27918bd5d9ca2d0d4f3ac3a6ab86b9e3699dc5bfe32904a027f3d2a9
F ext/jni/jar-dist.make 030aaa4ae71dd86e4ec5e7c1e6cd86f9dfa47c4592c070d2e35157e42498e1fa
-F ext/jni/src/c/sqlite3-jni.c 6046370cddd31778e9002a3848e380d187a8a1b75666afbdcfb5906ef741b6f9
+F ext/jni/src/c/sqlite3-jni.c 4b78ca613beb04515d27f3b539061438bee5af66ebf7ec1763b78f5b7a886e83
F ext/jni/src/c/sqlite3-jni.h 12e1a5ef5ee1795dc22577c285b4518dfd8aa4af45757f6cb81a555d967bf201
F ext/jni/src/org/sqlite/jni/AbstractCollationCallback.java 95e88ba04f4aac51ffec65693e878e234088b2f21b387f4e4285c8b72b33e436
F ext/jni/src/org/sqlite/jni/AggregateFunction.java 7312486bc65fecdb91753c0a4515799194e031f45edbe16a6373cea18f404dc4
F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P f02dad66b965b9e3c504001e9603af8f74977f151bede9db369f88e86a4aeb00
-R 939c02dc8fb9e092bdac6891a1151351
+P 1808d12ee0d1f1e5ee49d48c699ca10c4f822989ac9b4ac08f2b861513ee5997
+R 5b95fe0a7229660967a4e5fdae0507cd
U stephan
-Z c3a2989b14ceb26f9ee63232f5504607
+Z f730905721414dc145d7e6f2fcf9a0e6
# Remove this line to create a well-formed Fossil manifest.