]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Adapted the JNI bindings for the sqlite3_value_...() and (pre)update hook APIs to...
authorstephan <stephan@noemail.net>
Thu, 28 Sep 2023 11:19:37 +0000 (11:19 +0000)
committerstephan <stephan@noemail.net>
Thu, 28 Sep 2023 11:19:37 +0000 (11:19 +0000)
FossilOrigin-Name: 4182f0275d5d65e04a130eeef4d44642a5ffeeb4b84430d240ea2605345f1404

ext/jni/src/c/sqlite3-jni.c
ext/jni/src/c/sqlite3-jni.h
ext/jni/src/org/sqlite/jni/SQLite3Jni.java
manifest
manifest.uuid

index 248c12abbd8e6b47860b74301edf3b7cbfaf0abf..26d0647a6f61d58a57a45179c4cb390f8282e23b 100644 (file)
@@ -3792,8 +3792,8 @@ S3JniApi(sqlite3_preupdate_depth(),int,1preupdate_1depth)(
 ** JNI wrapper for both sqlite3_update_hook() and
 ** sqlite3_preupdate_hook() (if isPre is true).
 */
-static jobject s3jni_updatepre_hook(JNIEnv * env, int isPre, jobject jDb, jobject jHook){
-  S3JniDb * const ps = S3JniDb_from_java(jDb);
+static jobject s3jni_updatepre_hook(JNIEnv * env, int isPre, jlong jpDb, jobject jHook){
+  S3JniDb * const ps = S3JniDb_from_c(S3JniLongPtr_sqlite3(jpDb));
   jclass klazz;
   jobject pOld = 0;
   jmethodID xCallback;
@@ -3866,20 +3866,20 @@ end:
 
 
 S3JniApi(sqlite3_preupdate_hook(),jobject,1preupdate_1hook)(
-  JniArgsEnvClass, jobject jDb, jobject jHook
+  JniArgsEnvClass, jlong jpDb, jobject jHook
 ){
 #ifdef SQLITE_ENABLE_PREUPDATE_HOOK
-  return s3jni_updatepre_hook(env, 1, jDb, jHook);
+  return s3jni_updatepre_hook(env, 1, jpDb, jHook);
 #else
   return NULL;
 #endif /* SQLITE_ENABLE_PREUPDATE_HOOK */
 }
 
 /* Impl for sqlite3_preupdate_{new,old}(). */
-static int s3jni_preupdate_newold(JNIEnv * const env, int isNew, jobject jDb,
+static int s3jni_preupdate_newold(JNIEnv * const env, int isNew, jlong jpDb,
                                   jint iCol, jobject jOut){
 #ifdef SQLITE_ENABLE_PREUPDATE_HOOK
-  sqlite3 * const pDb = PtrGet_sqlite3(jDb);
+  sqlite3 * const pDb = S3JniLongPtr_sqlite3(jpDb);
   int rc = SQLITE_MISUSE;
   if( pDb ){
     sqlite3_value * pOut = 0;
@@ -3903,15 +3903,15 @@ static int s3jni_preupdate_newold(JNIEnv * const env, int isNew, jobject jDb,
 }
 
 S3JniApi(sqlite3_preupdate_new(),jint,1preupdate_1new)(
-  JniArgsEnvClass, jobject jDb, jint iCol, jobject jOut
+  JniArgsEnvClass, jlong jpDb, jint iCol, jobject jOut
 ){
-  return s3jni_preupdate_newold(env, 1, jDb, iCol, jOut);
+  return s3jni_preupdate_newold(env, 1, jpDb, iCol, jOut);
 }
 
 S3JniApi(sqlite3_preupdate_old(),jint,1preupdate_1old)(
-  JniArgsEnvClass, jobject jDb, jint iCol, jobject jOut
+  JniArgsEnvClass, jlong jpDb, jint iCol, jobject jOut
 ){
-  return s3jni_preupdate_newold(env, 0, jDb, iCol, jOut);
+  return s3jni_preupdate_newold(env, 0, jpDb, iCol, jOut);
 }
 
 
@@ -4619,16 +4619,16 @@ S3JniApi(sqlite3_txn_state(),jint,1txn_1state)(
 }
 
 S3JniApi(sqlite3_update_hook(),jobject,1update_1hook)(
-  JniArgsEnvClass, jobject jDb, jobject jHook
+  JniArgsEnvClass, jlong jpDb, jobject jHook
 ){
-  return s3jni_updatepre_hook(env, 0, jDb, jHook);
+  return s3jni_updatepre_hook(env, 0, jpDb, jHook);
 }
 
 
 S3JniApi(sqlite3_value_blob(),jbyteArray,1value_1blob)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  sqlite3_value * const sv = PtrGet_sqlite3_value(jpSVal);
+  sqlite3_value * const sv = S3JniLongPtr_sqlite3_value(jpSVal);
   int const nLen = sqlite3_value_bytes(sv);
   const jbyte * pBytes = sqlite3_value_blob(sv);
 
@@ -4640,48 +4640,48 @@ S3JniApi(sqlite3_value_blob(),jbyteArray,1value_1blob)(
 
 
 S3JniApi(sqlite3_value_double(),jdouble,1value_1double)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  return (jdouble) sqlite3_value_double(PtrGet_sqlite3_value(jpSVal));
+  return (jdouble) sqlite3_value_double(S3JniLongPtr_sqlite3_value(jpSVal));
 }
 
 
 S3JniApi(sqlite3_value_dup(),jobject,1value_1dup)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  sqlite3_value * const sv = sqlite3_value_dup(PtrGet_sqlite3_value(jpSVal));
+  sqlite3_value * const sv = sqlite3_value_dup(S3JniLongPtr_sqlite3_value(jpSVal));
   return sv ? new_java_sqlite3_value(env, sv) : 0;
 }
 
 S3JniApi(sqlite3_value_free(),void,1value_1free)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  sqlite3_value_free(PtrGet_sqlite3_value(jpSVal));
+  sqlite3_value_free(S3JniLongPtr_sqlite3_value(jpSVal));
 }
 
 S3JniApi(sqlite3_value_int(),jint,1value_1int)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  return (jint) sqlite3_value_int(PtrGet_sqlite3_value(jpSVal));
+  return (jint) sqlite3_value_int(S3JniLongPtr_sqlite3_value(jpSVal));
 }
 
 S3JniApi(sqlite3_value_int64(),jlong,1value_1int64)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  return (jlong) sqlite3_value_int64(PtrGet_sqlite3_value(jpSVal));
+  return (jlong) sqlite3_value_int64(S3JniLongPtr_sqlite3_value(jpSVal));
 }
 
 S3JniApi(sqlite3_value_java_object(),jobject,1value_1java_1object)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  return sqlite3_value_pointer(PtrGet_sqlite3_value(jpSVal),
+  return sqlite3_value_pointer(S3JniLongPtr_sqlite3_value(jpSVal),
                                ResultJavaValuePtrStr);
 }
 
 S3JniApi(sqlite3_value_text(),jbyteArray,1value_1text)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  sqlite3_value * const sv = PtrGet_sqlite3_value(jpSVal);
+  sqlite3_value * const sv = S3JniLongPtr_sqlite3_value(jpSVal);
   int const n = sqlite3_value_bytes(sv);
   const unsigned char * const p = sqlite3_value_text(sv);
   return p ? s3jni_new_jbyteArray(p, n) : 0;
@@ -4690,9 +4690,9 @@ S3JniApi(sqlite3_value_text(),jbyteArray,1value_1text)(
 #if 0
 // this impl might prove useful.
 S3JniApi(sqlite3_value_text(),jstring,1value_1text)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  sqlite3_value * const sv = PtrGet_sqlite3_value(jpSVal);
+  sqlite3_value * const sv = S3JniLongPtr_sqlite3_value(jpSVal);
   int const n = sqlite3_value_bytes(sv);
   const unsigned char * const p = sqlite3_value_text(sv);
   return p ? s3jni_utf8_to_jstring( (const char *)p, n) : 0;
@@ -4700,9 +4700,9 @@ S3JniApi(sqlite3_value_text(),jstring,1value_1text)(
 #endif
 
 S3JniApi(sqlite3_value_text16(),jstring,1value_1text16)(
-  JniArgsEnvClass, jobject jpSVal
+  JniArgsEnvClass, jlong jpSVal
 ){
-  sqlite3_value * const sv = PtrGet_sqlite3_value(jpSVal);
+  sqlite3_value * const sv = S3JniLongPtr_sqlite3_value(jpSVal);
   const int n = sqlite3_value_bytes16(sv);
   const void * const p = sqlite3_value_text16(sv);
   return s3jni_text16_to_jstring(env, p, n);
index a2e9644c8bebd5164d0914f619e8b4d6d046b8e2..555efed693d9ca44396715e6bf0adbd13dc5fe01 100644 (file)
@@ -1566,26 +1566,26 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1preupdate_1depth
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_preupdate_hook
- * Signature: (Lorg/sqlite/jni/sqlite3;Lorg/sqlite/jni/PreupdateHookCallback;)Lorg/sqlite/jni/PreupdateHookCallback;
+ * Signature: (JLorg/sqlite/jni/PreupdateHookCallback;)Lorg/sqlite/jni/PreupdateHookCallback;
  */
 JNIEXPORT jobject JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1preupdate_1hook
-  (JNIEnv *, jclass, jobject, jobject);
+  (JNIEnv *, jclass, jlong, jobject);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_preupdate_new
- * Signature: (Lorg/sqlite/jni/sqlite3;ILorg/sqlite/jni/OutputPointer/sqlite3_value;)I
+ * Signature: (JILorg/sqlite/jni/OutputPointer/sqlite3_value;)I
  */
 JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1preupdate_1new
-  (JNIEnv *, jclass, jobject, jint, jobject);
+  (JNIEnv *, jclass, jlong, jint, jobject);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_preupdate_old
- * Signature: (Lorg/sqlite/jni/sqlite3;ILorg/sqlite/jni/OutputPointer/sqlite3_value;)I
+ * Signature: (JILorg/sqlite/jni/OutputPointer/sqlite3_value;)I
  */
 JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1preupdate_1old
-  (JNIEnv *, jclass, jobject, jint, jobject);
+  (JNIEnv *, jclass, jlong, jint, jobject);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
@@ -1950,18 +1950,18 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1txn_1state
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_update_hook
- * Signature: (Lorg/sqlite/jni/sqlite3;Lorg/sqlite/jni/UpdateHookCallback;)Lorg/sqlite/jni/UpdateHookCallback;
+ * Signature: (JLorg/sqlite/jni/UpdateHookCallback;)Lorg/sqlite/jni/UpdateHookCallback;
  */
 JNIEXPORT jobject JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1update_1hook
-  (JNIEnv *, jclass, jobject, jobject);
+  (JNIEnv *, jclass, jlong, jobject);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_blob
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)[B
+ * Signature: (J)[B
  */
 JNIEXPORT jbyteArray JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1blob
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
@@ -1982,18 +1982,18 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1bytes16
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_double
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)D
+ * Signature: (J)D
  */
 JNIEXPORT jdouble JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1double
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_dup
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)Lorg/sqlite/jni/sqlite3_value;
+ * Signature: (J)Lorg/sqlite/jni/sqlite3_value;
  */
 JNIEXPORT jobject JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1dup
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
@@ -2006,10 +2006,10 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1encoding
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_free
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)V
+ * Signature: (J)V
  */
 JNIEXPORT void JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1free
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
@@ -2022,26 +2022,26 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1frombind
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_int
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)I
+ * Signature: (J)I
  */
 JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1int
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_int64
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)J
+ * Signature: (J)J
  */
 JNIEXPORT jlong JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1int64
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_java_object
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)Ljava/lang/Object;
+ * Signature: (J)Ljava/lang/Object;
  */
 JNIEXPORT jobject JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1java_1object
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
@@ -2070,18 +2070,18 @@ JNIEXPORT jint JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1subtype
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_text
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)[B
+ * Signature: (J)[B
  */
 JNIEXPORT jbyteArray JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1text
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
  * Method:    sqlite3_value_text16
- * Signature: (Lorg/sqlite/jni/sqlite3_value;)Ljava/lang/String;
+ * Signature: (J)Ljava/lang/String;
  */
 JNIEXPORT jstring JNICALL Java_org_sqlite_jni_SQLite3Jni_sqlite3_1value_1text16
-  (JNIEnv *, jclass, jobject);
+  (JNIEnv *, jclass, jlong);
 
 /*
  * Class:     org_sqlite_jni_SQLite3Jni
index 9cdae6d7b6a01f790f674b9bf6b29f5b05dba81c..807a79d7046e21d6d0b32e74ea81e56fa5f74a33 100644 (file)
@@ -1372,15 +1372,26 @@ public final class SQLite3Jni {
     return sqlite3_preupdate_depth(db.getNativePointer());
   }
 
+  @Canonical
+  private static native PreupdateHookCallback sqlite3_preupdate_hook(
+    @NotNull long ptrToDb, @Nullable PreupdateHookCallback hook
+  );
+
   /**
      If the C API was built with SQLITE_ENABLE_PREUPDATE_HOOK defined, this
      acts as a proxy for C's sqlite3_preupdate_hook(), else it returns null
      with no side effects.
   */
   @Canonical
-  public static native PreupdateHookCallback sqlite3_preupdate_hook(
+  public static PreupdateHookCallback sqlite3_preupdate_hook(
     @NotNull sqlite3 db, @Nullable PreupdateHookCallback hook
-  );
+  ){
+    return sqlite3_preupdate_hook(db.getNativePointer(), hook);
+  }
+
+  @Canonical
+  private static native int sqlite3_preupdate_new(@NotNull long ptrToDb, int col,
+                                                 @NotNull OutputPointer.sqlite3_value out);
 
   /**
      If the C API was built with SQLITE_ENABLE_PREUPDATE_HOOK defined,
@@ -1388,8 +1399,10 @@ public final class SQLite3Jni {
      returns SQLITE_MISUSE with no side effects.
   */
   @Canonical
-  public static native int sqlite3_preupdate_new(@NotNull sqlite3 db, int col,
-                                                 @NotNull OutputPointer.sqlite3_value out);
+  public static int sqlite3_preupdate_new(@NotNull sqlite3 db, int col,
+                                          @NotNull OutputPointer.sqlite3_value out){
+    return sqlite3_preupdate_new(db.getNativePointer(), col, out);
+  }
 
   /**
      Convenience wrapper for the 3-arg sqlite3_preupdate_new() which returns
@@ -1397,18 +1410,24 @@ public final class SQLite3Jni {
   */
   public static sqlite3_value sqlite3_preupdate_new(@NotNull sqlite3 db, int col){
     final OutputPointer.sqlite3_value out = new OutputPointer.sqlite3_value();
-    sqlite3_preupdate_new(db, col, out);
+    sqlite3_preupdate_new(db.getNativePointer(), col, out);
     return out.take();
   }
 
+  @Canonical
+  private static native int sqlite3_preupdate_old(@NotNull long ptrToDb, int col,
+                                                 @NotNull OutputPointer.sqlite3_value out);
+
   /**
      If the C API was built with SQLITE_ENABLE_PREUPDATE_HOOK defined,
      this acts as a proxy for C's sqlite3_preupdate_old(), else it
      returns SQLITE_MISUSE with no side effects.
   */
   @Canonical
-  public static native int sqlite3_preupdate_old(@NotNull sqlite3 db, int col,
-                                                 @NotNull OutputPointer.sqlite3_value out);
+  public static int sqlite3_preupdate_old(@NotNull sqlite3 db, int col,
+                                          @NotNull OutputPointer.sqlite3_value out){
+    return sqlite3_preupdate_old(db.getNativePointer(), col, out);
+  }
 
   /**
      Convenience wrapper for the 3-arg sqlite3_preupdate_old() which returns
@@ -1416,7 +1435,7 @@ public final class SQLite3Jni {
   */
   public static sqlite3_value sqlite3_preupdate_old(@NotNull sqlite3 db, int col){
     final OutputPointer.sqlite3_value out = new OutputPointer.sqlite3_value();
-    sqlite3_preupdate_old(db, col, out);
+    sqlite3_preupdate_old(db.getNativePointer(), col, out);
     return out.take();
   }
 
@@ -1966,10 +1985,17 @@ public final class SQLite3Jni {
   );
 
   @Canonical
-  public static native UpdateHookCallback sqlite3_update_hook(
-    @NotNull sqlite3 db, @Nullable UpdateHookCallback hook
+  private static native UpdateHookCallback sqlite3_update_hook(
+    @NotNull long ptrToDb, @Nullable UpdateHookCallback hook
   );
 
+  @Canonical
+  public static UpdateHookCallback sqlite3_update_hook(
+    @NotNull sqlite3 db, @Nullable UpdateHookCallback hook
+  ){
+    return sqlite3_update_hook(db.getNativePointer(), hook);
+  }
+
   /*
      Note that:
 
@@ -1981,7 +2007,12 @@ public final class SQLite3Jni {
   */
 
   @Canonical
-  public static native byte[] sqlite3_value_blob(@NotNull sqlite3_value v);
+  private static native byte[] sqlite3_value_blob(@NotNull long ptrToValue);
+
+  @Canonical
+  public static byte[] sqlite3_value_blob(@NotNull sqlite3_value v){
+    return sqlite3_value_blob(v.getNativePointer());
+  }
 
   @Canonical
   private static native int sqlite3_value_bytes(@NotNull long ptrToValue);
@@ -2000,12 +2031,20 @@ public final class SQLite3Jni {
   }
 
   @Canonical
-  public static native double sqlite3_value_double(@NotNull sqlite3_value v);
+  private static native double sqlite3_value_double(@NotNull long ptrToValue);
 
   @Canonical
-  public static native sqlite3_value sqlite3_value_dup(
-    @NotNull sqlite3_value v
-  );
+  public static double sqlite3_value_double(@NotNull sqlite3_value v){
+    return sqlite3_value_double(v.getNativePointer());
+  }
+
+  @Canonical
+  private static native sqlite3_value sqlite3_value_dup(@NotNull long ptrToValue);
+
+  @Canonical
+  public static sqlite3_value sqlite3_value_dup(@NotNull sqlite3_value v){
+    return sqlite3_value_dup(v.getNativePointer());
+  }
 
   @Canonical
   private static native int sqlite3_value_encoding(@NotNull long ptrToValue);
@@ -2016,7 +2055,12 @@ public final class SQLite3Jni {
   }
 
   @Canonical
-  public static native void sqlite3_value_free(@Nullable sqlite3_value v);
+  private static native void sqlite3_value_free(@Nullable long ptrToValue);
+
+  @Canonical
+  public static void sqlite3_value_free(@Nullable sqlite3_value v){
+    sqlite3_value_free(v.getNativePointer());
+  }
 
   @Canonical
   private static native int sqlite3_value_frombind(@NotNull long ptrToValue);
@@ -2027,10 +2071,22 @@ public final class SQLite3Jni {
   }
 
   @Canonical
-  public static native int sqlite3_value_int(@NotNull sqlite3_value v);
+  private static native int sqlite3_value_int(@NotNull long ptrToValue);
+
+  @Canonical
+  public static int sqlite3_value_int(@NotNull sqlite3_value v){
+    return sqlite3_value_int(v.getNativePointer());
+  }
 
   @Canonical
-  public static native long sqlite3_value_int64(@NotNull sqlite3_value v);
+  private 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);
 
   /**
      If the given value was set using {@link
@@ -2040,9 +2096,9 @@ public final class SQLite3Jni {
      <p>It is up to the caller to inspect the object to determine its
      type, and cast it if necessary.
   */
-  public static native Object sqlite3_value_java_object(
-    @NotNull sqlite3_value v
-  );
+  public static Object sqlite3_value_java_object(@NotNull sqlite3_value v){
+    return sqlite3_value_java_object(v.getNativePointer());
+  }
 
   /**
      A variant of sqlite3_value_java_object() which returns the
@@ -2080,6 +2136,9 @@ public final class SQLite3Jni {
     return sqlite3_value_subtype(v.getNativePointer());
   }
 
+  @Canonical
+  private static native byte[] sqlite3_value_text(@NotNull long ptrToValue);
+
   /**
      Functions identially to the C API, and this note is just to
      stress that the returned bytes are encoded as UTF-8. It returns
@@ -2087,10 +2146,17 @@ public final class SQLite3Jni {
      or on allocation error.
   */
   @Canonical
-  public static native byte[] sqlite3_value_text(@NotNull sqlite3_value v);
+  public static byte[] sqlite3_value_text(@NotNull sqlite3_value v){
+    return sqlite3_value_text(v.getNativePointer());
+  }
+
+  @Canonical
+  private static native String sqlite3_value_text16(@NotNull long ptrToValue);
 
   @Canonical
-  public static native String sqlite3_value_text16(@NotNull sqlite3_value v);
+  public static String sqlite3_value_text16(@NotNull sqlite3_value v){
+    return sqlite3_value_text16(v.getNativePointer());
+  }
 
   @Canonical
   private static native int sqlite3_value_type(@NotNull long ptrToValue);
index de6d1d2b2b71f7aef774e6a56eaf30267a761864..dc7e99b90439a823c6699f4afd3e4df72276ddab 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Convert\sthe\sremaining\smacro-generated\sJNI\sbindings\sto\sthe\snew\spointer-passing\smechanism.
-D 2023-09-28T10:50:26.804
+C Adapted\sthe\sJNI\sbindings\sfor\sthe\ssqlite3_value_...()\sand\s(pre)update\shook\sAPIs\sto\sthe\snew\spointer-passing\smechanism.
+D 2023-09-28T11:19:37.102
 F .fossil-settings/empty-dirs dbb81e8fc0401ac46a1491ab34a7f2c7c0452f2f06b54ebb845d024ca8283ef1
 F .fossil-settings/ignore-glob 35175cdfcf539b2318cb04a9901442804be81cd677d8b889fcc9149c21f239ea
 F LICENSE.md df5091916dbb40e6e9686186587125e1b2ff51f022cc334e886c19a0e9982724
@@ -238,8 +238,8 @@ F ext/icu/sqliteicu.h fa373836ed5a1ee7478bdf8a1650689294e41d0c89c1daab26e9ae78a3
 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 cb456137ac67fc9859279d7c5029bf771954df5f4922abbbf2be2a79b0909116
-F ext/jni/src/c/sqlite3-jni.h ad69a8b62390c8ad5be254fa1a065c0ba48152b271d82edb84f89edf4c83669c
+F ext/jni/src/c/sqlite3-jni.c 9d5ea1bf8c7da874fdd6dc3f7cd05632c82e747fb6f4b4b3967f7aadae3ac910
+F ext/jni/src/c/sqlite3-jni.h 0c13ef53143ad6b3ed0e6b15f706f9f03e9c0c6c4f896a5846e4a68e58da83c8
 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,7 +259,7 @@ 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 e03e2a3e773c95401c97f334e7389dcf9ebe65d01a9c6e0ada1a1e8618958d7f
+F ext/jni/src/org/sqlite/jni/SQLite3Jni.java 8dc0c48378eaf04bfc868bd8069dd5e55365b5d50d2e14b6e075c2afee1a5844
 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
@@ -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 5f47fb77db4ee77afc541e680559ad88e66ba7fd04b830e70f8be92cf8d0a60c
-R 00596872cec8308548a723b66cba58cd
+P 250fd6ae806cf705c0f29ad30ad8fb885b12590848e7adae63bc21d874c6d3bd
+R b6214243c5615bb53c027385b902ff1b
 U stephan
-Z f8a1bff7f7d52efaacf825af2168fc26
+Z 6486a7f1446bd02f9d2f2235b0984708
 # Remove this line to create a well-formed Fossil manifest.
index f62f58d6acec5775a94e15151694fff68f86ff87..a0760fca514964a73f87dbafee971554973bd0f6 100644 (file)
@@ -1 +1 @@
-250fd6ae806cf705c0f29ad30ad8fb885b12590848e7adae63bc21d874c6d3bd
\ No newline at end of file
+4182f0275d5d65e04a130eeef4d44642a5ffeeb4b84430d240ea2605345f1404
\ No newline at end of file