From: stephan Date: Mon, 21 Aug 2023 23:45:19 +0000 (+0000) Subject: Minor JNI cleanups. X-Git-Tag: version-3.44.0~305^2~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=484f9bed4e96e67386304d6c8dd5b8263ec85c49;p=thirdparty%2Fsqlite.git Minor JNI cleanups. FossilOrigin-Name: b88910aaaaaaa0936974379bb3eb8a5a3a634395b14e67cc9030f8a520f471f1 --- diff --git a/ext/jni/src/c/sqlite3-jni.c b/ext/jni/src/c/sqlite3-jni.c index 2216af6259..25f2420996 100644 --- a/ext/jni/src/c/sqlite3-jni.c +++ b/ext/jni/src/c/sqlite3-jni.c @@ -3735,6 +3735,7 @@ JDECLFtsApi(jint,xCreateFunction)(JENV_OSELF, jstring jName, int rc; char const * zName; Fts5JniAux * pAux; + assert(pApi); zName = JSTR_TOC(jName); if(!zName) return SQLITE_NOMEM; @@ -3756,15 +3757,15 @@ JDECLFtsApi(jint,xCreateFunction)(JENV_OSELF, jstring jName, } -typedef struct s3jni_fts5AuxData s3jni_fts5AuxData; -struct s3jni_fts5AuxData { +typedef struct S3JniFts5AuxData S3JniFts5AuxData; +struct S3JniFts5AuxData { JNIEnv *env; jobject jObj; }; -static void s3jni_fts5AuxData_xDestroy(void *x){ +static void S3JniFts5AuxData_xDestroy(void *x){ if(x){ - s3jni_fts5AuxData * const p = x; + S3JniFts5AuxData * const p = x; if(p->jObj){ JNIEnv *env = p->env; s3jni_call_xDestroy(env, p->jObj, 0); @@ -3777,7 +3778,7 @@ static void s3jni_fts5AuxData_xDestroy(void *x){ JDECLFtsXA(jobject,xGetAuxdata)(JENV_OSELF,jobject jCtx, jboolean bClear){ Fts5ExtDecl; jobject rv = 0; - s3jni_fts5AuxData * const pAux = fext->xGetAuxdata(PtrGet_Fts5Context(jCtx), bClear); + S3JniFts5AuxData * const pAux = fext->xGetAuxdata(PtrGet_Fts5Context(jCtx), bClear); if(pAux){ if(bClear){ if( pAux->jObj ){ @@ -3966,6 +3967,7 @@ JDECLFtsXA(jint,xQueryPhrase)(JENV_OSELF,jobject jFcx, jint iPhrase, S3JniEnv * const jc = S3JniGlobal_env_cache(env); struct s3jni_xQueryPhraseState s; jclass klazz = jCallback ? (*env)->GetObjectClass(env, jCallback) : NULL; + if( !klazz ) return SQLITE_MISUSE; s.env = env; s.jc = jc; @@ -3997,7 +3999,7 @@ JDECLFtsXA(jlong,xRowid)(JENV_OSELF,jobject jCtx){ JDECLFtsXA(int,xSetAuxdata)(JENV_OSELF,jobject jCtx, jobject jAux){ Fts5ExtDecl; int rc; - s3jni_fts5AuxData * pAux; + S3JniFts5AuxData * pAux; pAux = sqlite3_malloc(sizeof(*pAux)); if(!pAux){ if(jAux){ @@ -4010,7 +4012,7 @@ JDECLFtsXA(int,xSetAuxdata)(JENV_OSELF,jobject jCtx, jobject jAux){ pAux->env = env; pAux->jObj = REF_G(jAux); rc = fext->xSetAuxdata(PtrGet_Fts5Context(jCtx), pAux, - s3jni_fts5AuxData_xDestroy); + S3JniFts5AuxData_xDestroy); return rc; } @@ -4055,6 +4057,7 @@ static jint s3jni_fts5_xTokenize(JENV_OSELF, S3NphRef const *pRef, jbyte * const pText = jCallback ? JBA_TOC(jbaText) : 0; jsize nText = pText ? (*env)->GetArrayLength(env, jbaText) : 0; jclass const klazz = jCallback ? (*env)->GetObjectClass(env, jCallback) : NULL; + if( !klazz ) return SQLITE_MISUSE; memset(&s, 0, sizeof(s)); s.env = env; diff --git a/ext/jni/src/org/sqlite/jni/Fts5.java b/ext/jni/src/org/sqlite/jni/Fts5.java index 102cf575a8..443a69a409 100644 --- a/ext/jni/src/org/sqlite/jni/Fts5.java +++ b/ext/jni/src/org/sqlite/jni/Fts5.java @@ -27,7 +27,7 @@ public final class Fts5 { //! Callback type for use with xTokenize() variants public static interface xTokenizeCallback { - int xToken(int tFlags, byte txt[], int iStart, int iEnd); + int xToken(int tFlags, byte[] txt, int iStart, int iEnd); } public static final int FTS5_TOKENIZE_QUERY = 0x0001; diff --git a/ext/jni/src/org/sqlite/jni/Fts5ExtensionApi.java b/ext/jni/src/org/sqlite/jni/Fts5ExtensionApi.java index 4b04ed48a6..205f110f41 100644 --- a/ext/jni/src/org/sqlite/jni/Fts5ExtensionApi.java +++ b/ext/jni/src/org/sqlite/jni/Fts5ExtensionApi.java @@ -82,5 +82,5 @@ public final class Fts5ExtensionApi extends NativePointerHolder