Lines Matching defs:env
62 JNIEnv *env; /* Java environment for callbacks */
93 JNIEnv *env; /* Java environment for callbacks */
163 seterr(JNIEnv *env, jobject obj, int err)
169 (*env)->SetIntField(env, obj, F_SQLite_Database_error_code, v.i);
174 setvmerr(JNIEnv *env, jobject obj, int err)
180 (*env)->SetIntField(env, obj, F_SQLite_Vm_error_code, v.i);
185 setstmterr(JNIEnv *env, jobject obj, int err)
191 (*env)->SetIntField(env, obj, F_SQLite_Stmt_error_code, v.i);
210 gethandle(JNIEnv *env, jobject obj)
214 v.j = (*env)->GetLongField(env, obj, F_SQLite_Database_handle);
220 gethvm(JNIEnv *env, jobject obj)
224 v.j = (*env)->GetLongField(env, obj, F_SQLite_Vm_handle);
230 gethstmt(JNIEnv *env, jobject obj)
234 v.j = (*env)->GetLongField(env, obj, F_SQLite_Stmt_handle);
242 gethbl(JNIEnv *env, jobject obj)
246 v.j = (*env)->GetLongField(env, obj, F_SQLite_Blob_handle);
253 gethbk(JNIEnv *env, jobject obj)
257 v.j = (*env)->GetLongField(env, obj, F_SQLite_Backup_handle);
263 delglobrefp(JNIEnv *env, jobject *obj)
266 (*env)->DeleteGlobalRef(env, *obj);
272 globrefpop(JNIEnv *env, jobject *obj)
284 globrefset(JNIEnv *env, jobject obj, jobject *ref)
288 *ref = (*env)->NewGlobalRef(env, obj);
305 throwex(JNIEnv *env, const char *msg)
307 jclass except = (*env)->FindClass(env, "SQLite/Exception");
309 (*env)->ExceptionClear(env);
311 (*env)->ThrowNew(env, except, msg);
316 throwoom(JNIEnv *env, const char *msg)
318 jclass except = (*env)->FindClass(env, "java/lang/OutOfMemoryError");
320 (*env)->ExceptionClear(env);
322 (*env)->ThrowNew(env, except, msg);
327 throwclosed(JNIEnv *env)
329 throwex(env, "database already closed");
334 throwioex(JNIEnv *env, const char *msg)
336 jclass except = (*env)->FindClass(env, "java/io/IOException");
338 (*env)->ExceptionClear(env);
340 (*env)->ThrowNew(env, except, msg);
353 trans2iso(JNIEnv *env, int haveutf, jstring enc, jstring src,
363 const char *utf = (*env)->GetStringUTFChars(env, src, 0);
367 jsize utflen = (*env)->GetStringUTFLength(env, src);
368 jsize uclen = (*env)->GetStringLength(env, src);
373 throwoom(env, "string translation failed");
378 (*env)->ReleaseStringUTFChars(env, src, utf);
380 (*env)->GetStringUTFRegion(env, src, 0, uclen, dest->result);
386 bytes = (*env)->CallObjectMethod(env, src,
389 bytes = (*env)->CallObjectMethod(env, src,
392 exc = (*env)->ExceptionOccurred(env);
394 jint len = (*env)->GetArrayLength(env, bytes);
397 throwoom(env, "string translation failed");
401 (*env)->GetByteArrayRegion(env, bytes, 0, len, (jbyte *) dest->result);
404 (*env)->DeleteLocalRef(env, exc);
410 trans2utf(JNIEnv *env, int haveutf, jstring enc, const char *src,
423 dest->jstr = (*env)->NewStringUTF(env, src);
427 bytes = (*env)->NewByteArray(env, len);
429 (*env)->SetByteArrayRegion(env, bytes, 0, len, (jbyte *) src);
432 (*env)->NewObject(env, C_java_lang_String,
436 (*env)->NewObject(env, C_java_lang_String,
439 (*env)->DeleteLocalRef(env, bytes);
442 throwoom(env, "string translation failed");
451 JNIEnv *env = h->env;
454 if (env && h->bh) {
456 jclass cls = (*env)->GetObjectClass(env, h->bh);
457 jmethodID mid = (*env)->GetMethodID(env, cls, "busy",
461 (*env)->DeleteLocalRef(env, cls);
464 trans2utf(env, h->haveutf, h->enc, table, &tabstr);
465 ret = (*env)->CallBooleanMethod(env, h->bh, mid, tabstr.jstr,
468 (*env)->DeleteLocalRef(env, tabstr.jstr);
469 (*env)->DeleteLocalRef(env, cls);
480 JNIEnv *env = h->env;
483 if (env && h->bh) {
484 jclass cls = (*env)->GetObjectClass(env, h->bh);
485 jmethodID mid = (*env)->GetMethodID(env, cls, "busy",
489 (*env)->DeleteLocalRef(env, cls);
492 ret = (*env)->CallBooleanMethod(env, h->bh, mid, 0, (jint) count)
494 (*env)->DeleteLocalRef(env, cls);
504 JNIEnv *env = h->env;
507 if (env && h->ph) {
508 jclass cls = (*env)->GetObjectClass(env, h->ph);
509 jmethodID mid = (*env)->GetMethodID(env, cls, "progress", "()Z");
512 (*env)->DeleteLocalRef(env, cls);
515 ret = (*env)->CallBooleanMethod(env, h->ph, mid) != JNI_TRUE;
516 (*env)->DeleteLocalRef(env, cls);
525 JNIEnv *env = h->env;
527 if (env && h->cb) {
529 jclass cls = (*env)->GetObjectClass(env, h->cb);
535 mid = (*env)->GetMethodID(env, cls, "columns",
539 arr = (*env)->NewObjectArray(env, ncol, C_java_lang_String, 0);
544 trans2utf(env, h->haveutf, h->enc, cols[i], &col);
545 (*env)->SetObjectArrayElement(env, arr, i, col.jstr);
546 exc = (*env)->ExceptionOccurred(env);
548 (*env)->DeleteLocalRef(env, exc);
551 (*env)->DeleteLocalRef(env, col.jstr);
555 (*env)->CallVoidMethod(env, h->cb, mid, arr);
556 exc = (*env)->ExceptionOccurred(env);
558 (*env)->DeleteLocalRef(env, exc);
561 (*env)->DeleteLocalRef(env, arr);
565 mid = (*env)->GetMethodID(env, cls, "types",
569 arr = (*env)->NewObjectArray(env, ncol,
595 trans2utf(env, 1, 0, ctype, &ty);
596 (*env)->SetObjectArrayElement(env, arr, i,
598 exc = (*env)->ExceptionOccurred(env);
600 (*env)->DeleteLocalRef(env, exc);
603 (*env)->DeleteLocalRef(env, ty.jstr);
606 (*env)->CallVoidMethod(env, h->cb, mid, arr);
607 exc = (*env)->ExceptionOccurred(env);
609 (*env)->DeleteLocalRef(env, exc);
612 (*env)->DeleteLocalRef(env, arr);
616 mid = (*env)->GetMethodID(env, cls, "types",
620 arr = (*env)->NewObjectArray(env, ncol,
626 trans2utf(env, h->haveutf, h->enc,
628 (*env)->SetObjectArrayElement(env, arr, i,
630 exc = (*env)->ExceptionOccurred(env);
632 (*env)->DeleteLocalRef(env, exc);
635 (*env)->DeleteLocalRef(env, ty.jstr);
638 (*env)->CallVoidMethod(env, h->cb, mid, arr);
639 exc = (*env)->ExceptionOccurred(env);
641 (*env)->DeleteLocalRef(env, exc);
644 (*env)->DeleteLocalRef(env, arr);
651 mid = (*env)->GetMethodID(env, cls, "types",
655 arr = (*env)->NewObjectArray(env, ncol,
661 trans2utf(env, h->haveutf, h->enc,
663 (*env)->SetObjectArrayElement(env, arr, i,
665 exc = (*env)->ExceptionOccurred(env);
667 (*env)->DeleteLocalRef(env, exc);
670 (*env)->DeleteLocalRef(env, ty.jstr);
673 (*env)->CallVoidMethod(env, h->cb, mid, arr);
674 exc = (*env)->ExceptionOccurred(env);
676 (*env)->DeleteLocalRef(env, exc);
679 (*env)->DeleteLocalRef(env, arr);
684 mid = (*env)->GetMethodID(env, cls, "types",
688 arr = (*env)->NewObjectArray(env, ncol,
713 trans2utf(env, 1, 0, ctype, &ty);
714 (*env)->SetObjectArrayElement(env, arr, i, ty.jstr);
715 exc = (*env)->ExceptionOccurred(env);
717 (*env)->DeleteLocalRef(env, exc);
720 (*env)->DeleteLocalRef(env, ty.jstr);
723 (*env)->CallVoidMethod(env, h->cb, mid, arr);
724 exc = (*env)->ExceptionOccurred(env);
726 (*env)->DeleteLocalRef(env, exc);
729 (*env)->DeleteLocalRef(env, arr);
735 mid = (*env)->GetMethodID(env, cls, "newrow",
740 arr = (*env)->NewObjectArray(env, ncol, C_java_lang_String, 0);
745 trans2utf(env, h->haveutf, h->enc, data[i], &dats);
746 (*env)->SetObjectArrayElement(env, arr, i, dats.jstr);
747 exc = (*env)->ExceptionOccurred(env);
749 (*env)->DeleteLocalRef(env, exc);
752 (*env)->DeleteLocalRef(env, dats.jstr);
755 rc = (*env)->CallBooleanMethod(env, h->cb, mid, arr);
756 exc = (*env)->ExceptionOccurred(env);
758 (*env)->DeleteLocalRef(env, exc);
762 (*env)->DeleteLocalRef(env, arr);
764 (*env)->DeleteLocalRef(env, cls);
773 doclose(JNIEnv *env, jobject obj, int final)
775 handle *h = gethandle(env, obj);
832 f->env = 0;
834 (*env)->SetLongField(env, f->fc,
837 delglobrefp(env, &f->db);
838 delglobrefp(env, &f->fi);
839 delglobrefp(env, &f->fc);
864 delglobrefp(env, &h->bh);
865 delglobrefp(env, &h->cb);
866 delglobrefp(env, &h->ai);
867 delglobrefp(env, &h->tr);
868 delglobrefp(env, &h->ph);
869 delglobrefp(env, &h->enc);
871 (*env)->SetLongField(env, obj, F_SQLite_Database_handle, 0);
875 throwclosed(env);
880 Java_SQLite_Database__1close(JNIEnv *env, jobject obj)
882 doclose(env, obj, 0);
886 Java_SQLite_Database__1finalize(JNIEnv *env, jobject obj)
888 doclose(env, obj, 1);
892 Java_SQLite_Database__1busy_1timeout(JNIEnv *env, jobject obj, jint ms)
894 handle *h = gethandle(env, obj);
913 throwclosed(env);
917 Java_SQLite_Database_version(JNIEnv *env, jclass cls)
921 return (*env)->NewStringUTF(env, sqlite_libversion());
924 return (*env)->NewStringUTF(env, sqlite_libversion());
926 return (*env)->NewStringUTF(env, sqlite3_libversion());
932 Java_SQLite_Database_dbversion(JNIEnv *env, jobject obj)
934 handle *h = gethandle(env, obj);
939 return (*env)->NewStringUTF(env, sqlite3_libversion());
941 return (*env)->NewStringUTF(env, sqlite_libversion());
945 return (*env)->NewStringUTF(env, sqlite_libversion());
947 return (*env)->NewStringUTF(env, sqlite3_libversion());
951 return (*env)->NewStringUTF(env, "unknown");
955 Java_SQLite_Database__1last_1insert_1rowid(JNIEnv *env, jobject obj)
957 handle *h = gethandle(env, obj);
975 throwclosed(env);
980 Java_SQLite_Database__1changes(JNIEnv *env, jobject obj)
982 handle *h = gethandle(env, obj);
1000 throwclosed(env);
1005 Java_SQLite_Database__1complete(JNIEnv *env, jclass cls, jstring sql)
1015 trans2iso(env, 1, 0, sql, &sqlstr);
1018 trans2iso(env, strcmp(sqlite_libencoding(), "UTF-8") == 0, 0,
1027 Java_SQLite_Database__1interrupt(JNIEnv *env, jobject obj)
1029 handle *h = gethandle(env, obj);
1048 throwclosed(env);
1052 Java_SQLite_Database__1open4(JNIEnv *env, jobject obj, jstring file, jint mode,
1055 handle *h = gethandle(env, obj);
1090 throwoom(env, "unable to get SQLite handle");
1122 h->env = 0;
1124 throwex(env, err ? err : "invalid file name");
1127 trans2iso(env, h->haveutf, h->enc, file, &filename);
1128 exc = (*env)->ExceptionOccurred(env);
1130 (*env)->DeleteLocalRef(env, exc);
1135 trans2iso(env, 1, h->enc, vfs, &vfsname);
1136 exc = (*env)->ExceptionOccurred(env);
1139 (*env)->DeleteLocalRef(env, exc);
1195 exc = (*env)->ExceptionOccurred(env);
1197 (*env)->DeleteLocalRef(env, exc);
1228 (*env)->SetLongField(env, obj, F_SQLite_Database_handle, v.j);
1257 throwex(env, err ? err : "unknown error in open");
1266 Java_SQLite_Database__1open(JNIEnv *env, jobject obj, jstring file, jint mode)
1268 Java_SQLite_Database__1open4(env, obj, file, mode, 0, 0);
1272 Java_SQLite_Database__1open_1aux_1file(JNIEnv *env, jobject obj, jstring file)
1274 handle *h = gethandle(env, obj);
1286 throwex(env, "unsupported");
1289 trans2iso(env, h->haveutf, h->enc, file, &filename);
1290 exc = (*env)->ExceptionOccurred(env);
1292 (*env)->DeleteLocalRef(env, exc);
1298 exc = (*env)->ExceptionOccurred(env);
1300 (*env)->DeleteLocalRef(env, exc);
1307 throwex(env, err ? err : sqlite_error_string(ret));
1313 throwex(env, "unsupported");
1317 throwclosed(env);
1321 Java_SQLite_Database__1busy_1handler(JNIEnv *env, jobject obj, jobject bh)
1323 handle *h = gethandle(env, obj);
1326 delglobrefp(env, &h->bh);
1327 globrefset(env, bh, &h->bh);
1344 throwclosed(env);
1349 (JNIEnv *env, jobject obj, jstring sql, jobject cb)
1351 handle *h = gethandle(env, obj);
1355 throwex(env, "invalid SQL statement");
1364 jobject oldcb = globrefpop(env, &h->cb);
1366 globrefset(env, cb, &h->cb);
1367 h->env = env;
1369 trans2iso(env, h->haveutf, h->enc, sql, &sqlstr);
1370 exc = (*env)->ExceptionOccurred(env);
1372 (*env)->DeleteLocalRef(env, exc);
1398 exc = (*env)->ExceptionOccurred(env);
1399 delglobrefp(env, &h->cb);
1402 (*env)->DeleteLocalRef(env, exc);
1411 seterr(env, obj, rc);
1415 throwex(env, err ? err : msg);
1423 throwclosed(env);
1428 (JNIEnv *env, jobject obj, jstring sql, jobject cb, jobjectArray args)
1430 handle *h = gethandle(env, obj);
1434 throwex(env, "invalid SQL statement");
1442 const char *str = (*env)->GetStringUTFChars(env, sql, 0);
1450 jobject oldcb = globrefpop(env, &h->cb);
1452 globrefset(env, cb, &h->cb);
1461 (*env)->ReleaseStringUTFChars(env, sql, str);
1462 delglobrefp(env, &h->cb);
1464 throwex(env, "too much SQL parameters");
1470 (*env)->ReleaseStringUTFChars(env, sql, str);
1471 delglobrefp(env, &h->cb);
1473 throwex(env, "too much SQL parameters");
1477 (*env)->ReleaseStringUTFChars(env, sql, str);
1478 delglobrefp(env, &h->cb);
1480 throwex(env, "bad % specification in query");
1489 (*env)->ReleaseStringUTFChars(env, sql, str);
1490 delglobrefp(env, &h->cb);
1492 throwoom(env, "unable to allocate arg vector");
1504 jobject so = (*env)->GetObjectArrayElement(env, args, i);
1506 exc = (*env)->ExceptionOccurred(env);
1508 (*env)->DeleteLocalRef(env, exc);
1514 trans2iso(env, h->haveutf, h->enc, argv[i].obj,
1525 (*env)->ReleaseStringUTFChars(env, sql, str);
1526 delglobrefp(env, &h->cb);
1530 h->env = env;
1532 trans2iso(env, h->haveutf, h->enc, sql, &sqlstr);
1533 exc = (*env)->ExceptionOccurred(env);
1655 exc = (*env)->ExceptionOccurred(env);
1663 (*env)->ReleaseStringUTFChars(env, sql, str);
1665 delglobrefp(env, &h->cb);
1668 (*env)->DeleteLocalRef(env, exc);
1677 seterr(env, obj, rc);
1681 throwex(env, err ? err : msg);
1689 throwclosed(env);
1693 getfunc(JNIEnv *env, jobject obj)
1697 v.j = (*env)->GetLongField(env, obj, F_SQLite_FunctionContext_handle);
1707 if (f && f->env && f->fi) {
1708 JNIEnv *env = f->env;
1709 jclass cls = (*env)->GetObjectClass(env, f->fi);
1711 (*env)->GetMethodID(env, cls,
1718 (*env)->DeleteLocalRef(env, cls);
1721 arr = (*env)->NewObjectArray(env, nargs, C_java_lang_String, 0);
1727 trans2utf(env, f->h->haveutf, f->h->enc, args[i], &arg);
1728 (*env)->SetObjectArrayElement(env, arr, i, arg.jstr);
1729 exc = (*env)->ExceptionOccurred(env);
1731 (*env)->DeleteLocalRef(env, exc);
1734 (*env)->DeleteLocalRef(env, arg.jstr);
1738 (*env)->CallVoidMethod(env, f->fi, mid, f->fc, arr);
1739 (*env)->DeleteLocalRef(env, arr);
1740 (*env)->DeleteLocalRef(env, cls);
1761 if (f && f->env && f->fi) {
1762 JNIEnv *env = f->env;
1763 jclass cls = (*env)->GetObjectClass(env, f->fi);
1764 jmethodID mid = (*env)->GetMethodID(env, cls, "last_step",
1767 (*env)->DeleteLocalRef(env, cls);
1771 (*env)->CallVoidMethod(env, f->fi, mid, f->fc);
1772 (*env)->DeleteLocalRef(env, cls);
1783 if (f && f->env && f->fi) {
1784 JNIEnv *env = f->env;
1785 jclass cls = (*env)->GetObjectClass(env, f->fi);
1787 (*env)->GetMethodID(env, cls,
1794 (*env)->DeleteLocalRef(env, cls);
1797 arr = (*env)->NewObjectArray(env, nargs, C_java_lang_String, 0);
1803 trans2utf(env, 1, 0, (char *) sqlite3_value_text(args[i]),
1805 (*env)->SetObjectArrayElement(env, arr, i, arg.jstr);
1806 exc = (*env)->ExceptionOccurred(env);
1808 (*env)->DeleteLocalRef(env, exc);
1811 (*env)->DeleteLocalRef(env, arg.jstr);
1815 (*env)->CallVoidMethod(env, f->fi, mid, f->fc, arr);
1816 (*env)->DeleteLocalRef(env, arr);
1817 (*env)->DeleteLocalRef(env, cls);
1838 if (f && f->env && f->fi) {
1839 JNIEnv *env = f->env;
1840 jclass cls = (*env)->GetObjectClass(env, f->fi);
1841 jmethodID mid = (*env)->GetMethodID(env, cls, "last_step",
1844 (*env)->DeleteLocalRef(env, cls);
1848 (*env)->CallVoidMethod(env, f->fi, mid, f->fc);
1849 (*env)->DeleteLocalRef(env, cls);
1855 mkfunc_common(JNIEnv *env, int isagg, jobject obj, jstring name,
1858 handle *h = gethandle(env, obj);
1861 jclass cls = (*env)->FindClass(env, "SQLite/FunctionContext");
1869 fc = (*env)->AllocObject(env, cls);
1871 throwex(env, "null SQLite.Function not allowed");
1876 throwoom(env, "unable to get SQLite.FunctionContext handle");
1879 globrefset(env, fc, &f->fc);
1880 globrefset(env, fi, &f->fi);
1881 globrefset(env, obj, &f->db);
1886 f->env = env;
1889 (*env)->SetLongField(env, f->fc, F_SQLite_FunctionContext_handle, v.j);
1890 trans2iso(env, h->haveutf, h->enc, name, &namestr);
1891 exc = (*env)->ExceptionOccurred(env);
1893 (*env)->DeleteLocalRef(env, exc);
1944 throwex(env, "error creating function/aggregate");
1948 throwclosed(env);
1952 Java_SQLite_Database__1create_1aggregate(JNIEnv *env, jobject obj,
1955 mkfunc_common(env, 1, obj, name, nargs, fi);
1959 Java_SQLite_Database__1create_1function(JNIEnv *env, jobject obj,
1962 mkfunc_common(env, 0, obj, name, nargs, fi);
1966 Java_SQLite_Database__1function_1type(JNIEnv *env, jobject obj,
1969 handle *h = gethandle(env, obj);
1984 trans2iso(env, h->haveutf, h->enc, name, &namestr);
1985 exc = (*env)->ExceptionOccurred(env);
1987 (*env)->DeleteLocalRef(env, exc);
1993 throwex(env, sqlite_error_string(ret));
2000 throwclosed(env);
2004 Java_SQLite_FunctionContext_count(JNIEnv *env, jobject obj)
2006 hfunc *f = getfunc(env, obj);
2029 Java_SQLite_FunctionContext_set_1error(JNIEnv *env, jobject obj, jstring err)
2031 hfunc *f = getfunc(env, obj);
2039 trans2iso(env, f->h->haveutf, f->h->enc, err, &errstr);
2040 exc = (*env)->ExceptionOccurred(env);
2042 (*env)->DeleteLocalRef(env, exc);
2049 jsize len = (*env)->GetStringLength(env, err) * sizeof (jchar);
2050 const jchar *str = (*env)->GetStringChars(env, err, 0);
2053 (*env)->ReleaseStringChars(env, err, str);
2063 trans2iso(env, f->h->haveutf, f->h->enc, err, &errstr);
2064 exc = (*env)->ExceptionOccurred(env);
2066 (*env)->DeleteLocalRef(env, exc);
2074 jsize len = (*env)->GetStringLength(env, err) * sizeof (jchar);
2075 const jchar *str = (*env)->GetStringChars(env, err, 0);
2078 (*env)->ReleaseStringChars(env, err, str);
2089 Java_SQLite_FunctionContext_set_1result__D(JNIEnv *env, jobject obj, jdouble d)
2091 hfunc *f = getfunc(env, obj);
2112 Java_SQLite_FunctionContext_set_1result__I(JNIEnv *env, jobject obj, jint i)
2114 hfunc *f = getfunc(env, obj);
2135 Java_SQLite_FunctionContext_set_1result__Ljava_lang_String_2(JNIEnv *env,
2139 hfunc *f = getfunc(env, obj);
2147 trans2iso(env, f->h->haveutf, f->h->enc, ret, &retstr);
2148 exc = (*env)->ExceptionOccurred(env);
2150 (*env)->DeleteLocalRef(env, exc);
2157 jsize len = (*env)->GetStringLength(env, ret) * sizeof (jchar);
2158 const jchar *str = (*env)->GetStringChars(env, ret, 0);
2162 (*env)->ReleaseStringChars(env, ret, str);
2171 trans2iso(env, f->h->haveutf, f->h->enc, ret, &retstr);
2172 exc = (*env)->ExceptionOccurred(env);
2174 (*env)->DeleteLocalRef(env, exc);
2182 jsize len = (*env)->GetStringLength(env, ret) * sizeof (jchar);
2183 const jchar *str = (*env)->GetStringChars(env, ret, 0);
2187 (*env)->ReleaseStringChars(env, ret, str);
2197 Java_SQLite_FunctionContext_set_1result___3B(JNIEnv *env, jobject obj,
2201 hfunc *f = getfunc(env, obj);
2214 len = (*env)->GetArrayLength(env, b);
2215 data = (*env)->GetByteArrayElements(env, b, 0);
2218 (*env)->ReleaseByteArrayElements(env, b, data, 0);
2227 Java_SQLite_FunctionContext_set_1result_1zeroblob(JNIEnv *env, jobject obj,
2231 hfunc *f = getfunc(env, obj);
2246 Java_SQLite_Database_error_1string(JNIEnv *env, jclass c, jint err)
2249 return (*env)->NewStringUTF(env, sqlite_error_string((int) err));
2251 return (*env)->NewStringUTF(env, "unkown error");
2256 Java_SQLite_Database__1errmsg(JNIEnv *env, jobject obj)
2259 handle *h = gethandle(env, obj);
2267 return (*env)->NewStringUTF(env,
2275 Java_SQLite_Database__1set_1encoding(JNIEnv *env, jobject obj, jstring enc)
2277 handle *h = gethandle(env, obj);
2282 delglobrefp(env, &h->enc);
2284 globrefset(env, enc, &h->enc);
2288 delglobrefp(env, &h->enc);
2290 globrefset(env, enc, &h->enc);
2302 JNIEnv *env = h->env;
2304 if (env && h->ai) {
2306 jclass cls = (*env)->GetObjectClass(env, h->ai);
2310 mid = (*env)->GetMethodID(env, cls, "authorize",
2317 trans2utf(env, h->haveutf, h->enc, arg1, &tr);
2320 exc = (*env)->ExceptionOccurred(env);
2322 (*env)->DeleteLocalRef(env, exc);
2326 trans2utf(env, h->haveutf, h->enc, arg2, &tr);
2330 trans2utf(env, h->haveutf, h->enc, arg3, &tr);
2334 trans2utf(env, h->haveutf, h->enc, arg4, &tr);
2337 exc = (*env)->ExceptionOccurred(env);
2339 (*env)->DeleteLocalRef(env, exc);
2342 i = (*env)->CallIntMethod(env, h->ai, mid, i, s1, s2, s3, s4);
2343 exc = (*env)->ExceptionOccurred(env);
2345 (*env)->DeleteLocalRef(env, exc);
2348 (*env)->DeleteLocalRef(env, s4);
2349 (*env)->DeleteLocalRef(env, s3);
2350 (*env)->DeleteLocalRef(env, s2);
2351 (*env)->DeleteLocalRef(env, s1);
2363 Java_SQLite_Database__1set_1authorizer(JNIEnv *env, jobject obj, jobject auth)
2365 handle *h = gethandle(env, obj);
2368 delglobrefp(env, &h->ai);
2369 globrefset(env, auth, &h->ai);
2371 h->env = env;
2391 throwclosed(env);
2399 JNIEnv *env = h->env;
2401 if (env && h->tr && msg) {
2403 jclass cls = (*env)->GetObjectClass(env, h->tr);
2406 mid = (*env)->GetMethodID(env, cls, "trace", "(Ljava/lang/String;)V");
2410 trans2utf(env, h->haveutf, h->enc, msg, &tr);
2411 exc = (*env)->ExceptionOccurred(env);
2413 (*env)->DeleteLocalRef(env, exc);
2414 (*env)->ExceptionClear(env);
2417 (*env)->CallVoidMethod(env, h->tr, mid, tr.jstr);
2418 (*env)->ExceptionClear(env);
2419 (*env)->DeleteLocalRef(env, tr.jstr);
2428 Java_SQLite_Database__1trace(JNIEnv *env, jobject obj, jobject tr)
2430 handle *h = gethandle(env, obj);
2433 delglobrefp(env, &h->tr);
2434 globrefset(env, tr, &h->tr);
2455 throwclosed(env);
2460 dovmfinal(JNIEnv *env, jobject obj, int final)
2462 hvm *v = gethvm(env, obj);
2498 (*env)->SetLongField(env, obj, F_SQLite_Vm_handle, 0);
2502 throwex(env, "vm already closed");
2509 dostmtfinal(JNIEnv *env, jobject obj)
2511 hvm *v = gethstmt(env, obj);
2534 (*env)->SetLongField(env, obj, F_SQLite_Stmt_handle, 0);
2541 doblobfinal(JNIEnv *env, jobject obj)
2543 hbl *bl = gethbl(env, obj);
2566 (*env)->SetLongField(env, obj, F_SQLite_Blob_handle, 0);
2567 (*env)->SetIntField(env, obj, F_SQLite_Blob_size, 0);
2573 Java_SQLite_Vm_stop(JNIEnv *env, jobject obj)
2576 dovmfinal(env, obj, 0);
2578 throwex(env, "unsupported");
2583 Java_SQLite_Vm_finalize(JNIEnv *env, jobject obj)
2586 dovmfinal(env, obj, 1);
2616 Java_SQLite_Vm_step(JNIEnv *env, jobject obj, jobject cb)
2619 hvm *v = gethvm(env, obj);
2631 v->h->env = env;
2798 v->hh.env = env;
2814 exc = (*env)->ExceptionOccurred(env);
2816 (*env)->DeleteLocalRef(env, exc);
2824 v->hh.env = env;
2840 exc = (*env)->ExceptionOccurred(env);
2842 (*env)->DeleteLocalRef(env, exc);
2876 setvmerr(env, obj, ret);
2878 throwex(env, "error in step");
2881 throwex(env, "vm already closed");
2883 throwex(env, "unsupported");
2889 Java_SQLite_Vm_compile(JNIEnv *env, jobject obj)
2892 hvm *v = gethvm(env, obj);
2922 v->h->env = env;
2980 setvmerr(env, obj, ret);
2982 throwex(env, err ? err : "error in compile/prepare");
3004 throwex(env, "vm already closed");
3006 throwex(env, "unsupported");
3012 Java_SQLite_Database_vm_1compile(JNIEnv *env, jobject obj, jstring sql,
3016 handle *h = gethandle(env, obj);
3030 throwclosed(env);
3034 throwex(env, "null vm");
3038 throwex(env, "null sql");
3041 trans2iso(env, h->haveutf, h->enc, sql, &tr);
3042 exc = (*env)->ExceptionOccurred(env);
3044 (*env)->DeleteLocalRef(env, exc);
3047 h->env = env;
3105 setvmerr(env, vm, ret);
3106 throwex(env, err ? err : "error in prepare/compile");
3140 throwoom(env, "unable to get SQLite handle");
3160 v->hh.env = 0;
3163 (*env)->SetLongField(env, vm, F_SQLite_Vm_handle, vv.j);
3165 throwex(env, "unsupported");
3170 Java_SQLite_Database_vm_1compile_1args(JNIEnv *env,
3176 handle *h = gethandle(env, obj);
3181 throwex(env, "unsupported");
3186 throwex(env, "unsupported");
3191 throwclosed(env);
3195 throwex(env, "null vm");
3199 throwex(env, "null sql");
3208 const char *str = (*env)->GetStringUTFChars(env, sql, 0);
3226 (*env)->ReleaseStringUTFChars(env, sql, str);
3227 throwex(env, "too much SQL parameters");
3231 (*env)->ReleaseStringUTFChars(env, sql, str);
3232 throwex(env, "bad % specification in query");
3240 (*env)->ReleaseStringUTFChars(env, sql, str);
3241 throwoom(env, "unable to allocate arg vector");
3253 jobject so = (*env)->GetObjectArrayElement(env, args, i);
3255 exc = (*env)->ExceptionOccurred(env);
3257 (*env)->DeleteLocalRef(env, exc);
3263 trans2iso(env, 1, 0, argv[i].obj, &argv[i].trans);
3273 (*env)->ReleaseStringUTFChars(env, sql, str);
3277 trans2iso(env, 1, 0, sql, &sqlstr);
3278 exc = (*env)->ExceptionOccurred(env);
3327 (*env)->ReleaseStringUTFChars(env, sql, str);
3328 setvmerr(env, vm, rc);
3329 throwex(env, "error in prepare");
3342 (*env)->ReleaseStringUTFChars(env, sql, str);
3344 setvmerr(env, vm, SQLITE_NOMEM);
3345 throwoom(env, "unable to get SQLite handle");
3366 v->hh.env = 0;
3369 (*env)->SetLongField(env, vm, F_SQLite_Vm_handle, vv.j);
3378 (*env)->ReleaseStringUTFChars(env, sql, str);
3380 (*env)->DeleteLocalRef(env, exc);
3385 throwex(env, "unsupported");
3390 Java_SQLite_FunctionContext_internal_1init(JNIEnv *env, jclass cls)
3393 (*env)->GetFieldID(env, cls, "handle", "J");
3397 Java_SQLite_Database__1progress_1handler(JNIEnv *env, jobject obj, jint n,
3400 handle *h = gethandle(env, obj);
3405 delglobrefp(env, &h->ph);
3409 globrefset(env, ph, &h->ph);
3418 globrefset(env, ph, &h->ph);
3429 globrefset(env, ph, &h->ph);
3439 globrefset(env, ph, &h->ph);
3450 throwex(env, "unsupported");
3454 throwclosed(env);
3458 Java_SQLite_Database_is3(JNIEnv *env, jobject obj)
3461 handle *h = gethandle(env, obj);
3478 Java_SQLite_Stmt_prepare(JNIEnv *env, jobject obj)
3481 hvm *v = gethstmt(env, obj);
3494 v->h->env = env;
3513 setstmterr(env, obj, ret);
3515 throwex(env, err ? err : "error in compile/prepare");
3527 throwex(env, "stmt already closed");
3529 throwex(env, "unsupported");
3535 Java_SQLite_Database_stmt_1prepare(JNIEnv *env, jobject obj, jstring sql,
3539 handle *h = gethandle(env, obj);
3548 throwclosed(env);
3552 throwex(env, "null stmt");
3556 throwex(env, "null sql");
3561 throwex(env, "only on SQLite3 database");
3565 len16 = (*env)->GetStringLength(env, sql) * sizeof (jchar);
3569 h->env = env;
3570 sql16 = (*env)->GetStringChars(env, sql, 0);
3587 (*env)->ReleaseStringChars(env, sql, sql16);
3588 setstmterr(env, stmt, ret);
3589 throwex(env, err ? err : "error in prepare");
3593 (*env)->ReleaseStringChars(env, sql, sql16);
3602 (*env)->ReleaseStringChars(env, sql, sql16);
3604 throwoom(env, "unable to get SQLite handle");
3618 (*env)->ReleaseStringChars(env, sql, sql16);
3627 v->hh.env = 0;
3630 (*env)->SetLongField(env, stmt, F_SQLite_Stmt_handle, vv.j);
3632 throwex(env, "unsupported");
3637 Java_SQLite_Stmt_step(JNIEnv *env, jobject obj)
3640 hvm *v = gethstmt(env, obj);
3652 setstmterr(env, obj, ret);
3653 throwex(env, err ? err : "error in step");
3657 throwex(env, "stmt already closed");
3659 throwex(env, "unsupported");
3665 Java_SQLite_Stmt_close(JNIEnv *env, jobject obj)
3668 hvm *v = gethstmt(env, obj);
3678 setstmterr(env, obj, ret);
3679 throwex(env, err ? err : "error in close");
3683 throwex(env, "stmt already closed");
3685 throwex(env, "unsupported");
3691 Java_SQLite_Stmt_reset(JNIEnv *env, jobject obj)
3694 hvm *v = gethstmt(env, obj);
3699 throwex(env, "stmt already closed");
3702 throwex(env, "unsupported");
3707 Java_SQLite_Stmt_clear_1bindings(JNIEnv *env, jobject obj)
3710 hvm *v = gethstmt(env, obj);
3715 throwex(env, "stmt already closed");
3718 throwex(env, "unsupported");
3723 Java_SQLite_Stmt_bind__II(JNIEnv *env, jobject obj, jint pos, jint val)
3726 hvm *v = gethstmt(env, obj);
3733 throwex(env, "parameter position out of bounds");
3738 setstmterr(env, obj, ret);
3739 throwex(env, "bind failed");
3742 throwex(env, "stmt already closed");
3745 throwex(env, "unsupported");
3750 Java_SQLite_Stmt_bind__IJ(JNIEnv *env, jobject obj, jint pos, jlong val)
3753 hvm *v = gethstmt(env, obj);
3760 throwex(env, "parameter position out of bounds");
3765 setstmterr(env, obj, ret);
3766 throwex(env, "bind failed");
3769 throwex(env, "stmt already closed");
3772 throwex(env, "unsupported");
3777 Java_SQLite_Stmt_bind__ID(JNIEnv *env, jobject obj, jint pos, jdouble val)
3780 hvm *v = gethstmt(env, obj);
3787 throwex(env, "parameter position out of bounds");
3792 setstmterr(env, obj, ret);
3793 throwex(env, "bind failed");
3796 throwex(env, "stmt already closed");
3799 throwex(env, "unsupported");
3804 Java_SQLite_Stmt_bind__I_3B(JNIEnv *env, jobject obj, jint pos, jbyteArray val)
3807 hvm *v = gethstmt(env, obj);
3816 throwex(env, "parameter position out of bounds");
3820 len = (*env)->GetArrayLength(env, val);
3824 throwoom(env, "unable to get blob parameter");
3827 (*env)->GetByteArrayRegion(env, val, 0, len, (jbyte *) data);
3841 setstmterr(env, obj, ret);
3842 throwex(env, "bind failed");
3845 throwex(env, "stmt already closed");
3848 throwex(env, "unsupported");
3853 Java_SQLite_Stmt_bind__ILjava_lang_String_2(JNIEnv *env, jobject obj,
3857 hvm *v = gethstmt(env, obj);
3866 throwex(env, "parameter position out of bounds");
3870 count = (*env)->GetStringLength(env, val);
3878 throwoom(env, "unable to get blob parameter");
3882 ch = (*env)->GetStringChars(env, val, 0);
3884 (*env)->ReleaseStringChars(env, val, ch);
3886 (*env)->GetStringRegion(env, val, 0, count, (jchar *) data);
3901 setstmterr(env, obj, ret);
3902 throwex(env, "bind failed");
3905 throwex(env, "stmt already closed");
3908 throwex(env, "unsupported");
3913 Java_SQLite_Stmt_bind__I(JNIEnv *env, jobject obj, jint pos)
3916 hvm *v = gethstmt(env, obj);
3923 throwex(env, "parameter position out of bounds");
3928 setstmterr(env, obj, ret);
3929 throwex(env, "bind failed");
3932 throwex(env, "stmt already closed");
3935 throwex(env, "unsupported");
3940 Java_SQLite_Stmt_bind_1zeroblob(JNIEnv *env, jobject obj, jint pos, jint len)
3943 hvm *v = gethstmt(env, obj);
3950 throwex(env, "parameter position out of bounds");
3955 setstmterr(env, obj, ret);
3956 throwex(env, "bind failed");
3959 throwex(env, "stmt already closed");
3962 throwex(env, "unsupported");
3967 Java_SQLite_Stmt_bind_1parameter_1count(JNIEnv *env, jobject obj)
3970 hvm *v = gethstmt(env, obj);
3975 throwex(env, "stmt already closed");
3977 throwex(env, "unsupported");
3983 Java_SQLite_Stmt_bind_1parameter_1name(JNIEnv *env, jobject obj, jint pos)
3986 hvm *v = gethstmt(env, obj);
3993 throwex(env, "parameter position out of bounds");
3998 return (*env)->NewStringUTF(env, name);
4001 throwex(env, "stmt already closed");
4004 throwex(env, "unsupported");
4010 Java_SQLite_Stmt_bind_1parameter_1index(JNIEnv *env, jobject obj,
4014 hvm *v = gethstmt(env, obj);
4022 n = trans2iso(env, 1, 0, name, &namestr);
4023 exc = (*env)->ExceptionOccurred(env);
4025 (*env)->DeleteLocalRef(env, exc);
4032 throwex(env, "stmt already closed");
4035 throwex(env, "unsupported");
4041 Java_SQLite_Stmt_column_1int(JNIEnv *env, jobject obj, jint col)
4044 hvm *v = gethstmt(env, obj);
4050 throwex(env, "column out of bounds");
4055 throwex(env, "stmt already closed");
4057 throwex(env, "unsupported");
4063 Java_SQLite_Stmt_column_1long(JNIEnv *env, jobject obj, jint col)
4066 hvm *v = gethstmt(env, obj);
4072 throwex(env, "column out of bounds");
4077 throwex(env, "stmt already closed");
4079 throwex(env, "unsupported");
4085 Java_SQLite_Stmt_column_1double(JNIEnv *env, jobject obj, jint col)
4088 hvm *v = gethstmt(env, obj);
4094 throwex(env, "column out of bounds");
4099 throwex(env, "stmt already closed");
4101 throwex(env, "unsupported");
4107 Java_SQLite_Stmt_column_1bytes(JNIEnv *env, jobject obj, jint col)
4110 hvm *v = gethstmt(env, obj);
4119 throwex(env, "column out of bounds");
4128 b = (*env)->NewByteArray(env, nbytes);
4130 throwoom(env, "unable to get blob column data");
4133 (*env)->SetByteArrayRegion(env, b, 0, nbytes, data);
4136 throwex(env, "stmt already closed");
4138 throwex(env, "unsupported");
4144 Java_SQLite_Stmt_column_1string(JNIEnv *env, jobject obj, jint col)
4147 hvm *v = gethstmt(env, obj);
4156 throwex(env, "column out of bounds");
4166 b = (*env)->NewString(env, data, nbytes);
4168 throwoom(env, "unable to get string column data");
4173 throwex(env, "stmt already closed");
4175 throwex(env, "unsupported");
4181 Java_SQLite_Stmt_column_1type(JNIEnv *env, jobject obj, jint col)
4184 hvm *v = gethstmt(env, obj);
4190 throwex(env, "column out of bounds");
4195 throwex(env, "stmt already closed");
4197 throwex(env, "unsupported");
4203 Java_SQLite_Stmt_column_1count(JNIEnv *env, jobject obj)
4206 hvm *v = gethstmt(env, obj);
4211 throwex(env, "stmt already closed");
4213 throwex(env, "unsupported");
4219 Java_SQLite_Stmt_column_1table_1name(JNIEnv *env, jobject obj, jint col)
4222 hvm *v = gethstmt(env, obj);
4229 throwex(env, "column out of bounds");
4234 return (*env)->NewString(env, str, jstrlen(str));
4238 throwex(env, "stmt already closed");
4240 throwex(env, "unsupported");
4246 Java_SQLite_Stmt_column_1database_1name(JNIEnv *env, jobject obj, jint col)
4249 hvm *v = gethstmt(env, obj);
4256 throwex(env, "column out of bounds");
4261 return (*env)->NewString(env, str, jstrlen(str));
4265 throwex(env, "stmt already closed");
4267 throwex(env, "unsupported");
4273 Java_SQLite_Stmt_column_1decltype(JNIEnv *env, jobject obj, jint col)
4276 hvm *v = gethstmt(env, obj);
4283 throwex(env, "column out of bounds");
4288 return (*env)->NewString(env, str, jstrlen(str));
4292 throwex(env, "stmt already closed");
4294 throwex(env, "unsupported");
4300 Java_SQLite_Stmt_column_1origin_1name(JNIEnv *env, jobject obj, jint col)
4303 hvm *v = gethstmt(env, obj);
4310 throwex(env, "column out of bounds");
4315 return (*env)->NewString(env, str, jstrlen(str));
4319 throwex(env, "stmt already closed");
4321 throwex(env, "unsupported");
4327 Java_SQLite_Stmt_status(JNIEnv *env, jobject obj, jint op, jboolean flg)
4331 hvm *v = gethstmt(env, obj);
4342 env, jobject obj)
4345 dostmtfinal(env, obj);
4350 Java_SQLite_Database__1open_1blob(JNIEnv *env, jobject obj,
4356 handle *h = gethandle(env, obj);
4365 throwex(env, "null blob");
4370 throwex(env, "not a SQLite 3 database");
4375 trans2iso(env, h->haveutf, h->enc, dbname, &dbn);
4376 exc = (*env)->ExceptionOccurred(env);
4378 (*env)->DeleteLocalRef(env, exc);
4381 trans2iso(env, h->haveutf, h->enc, table, &tbl);
4382 exc = (*env)->ExceptionOccurred(env);
4385 (*env)->DeleteLocalRef(env, exc);
4388 trans2iso(env, h->haveutf, h->enc, column, &col);
4389 exc = (*env)->ExceptionOccurred(env);
4393 (*env)->DeleteLocalRef(env, exc);
4405 seterr(env, obj, ret);
4406 throwex(env, err ? err : "error in blob open");
4412 throwoom(env, "unable to get SQLite blob handle");
4421 (*env)->SetLongField(env, blobj, F_SQLite_Blob_handle, vv.j);
4422 (*env)->SetIntField(env, blobj, F_SQLite_Blob_size,
4426 throwex(env, "not an open database");
4428 throwex(env, "unsupported");
4433 Java_SQLite_Blob_write(JNIEnv *env , jobject obj, jbyteArray b, jint off,
4437 hbl *bl = gethbl(env, obj);
4449 throwoom(env, "out of buffer space for blob");
4452 (*env)->GetByteArrayRegion(env, b, off, len, buf);
4453 exc = (*env)->ExceptionOccurred(env);
4461 throwioex(env, "blob write error");
4466 throwex(env, "blob already closed");
4468 throwex(env, "unsupported");
4474 Java_SQLite_Blob_read(JNIEnv *env , jobject obj, jbyteArray b, jint off,
4478 hbl *bl = gethbl(env, obj);
4490 throwoom(env, "out of buffer space for blob");
4496 throwioex(env, "blob read error");
4499 (*env)->SetByteArrayRegion(env, b, off, len, buf);
4501 exc = (*env)->ExceptionOccurred(env);
4507 throwex(env, "blob already closed");
4509 throwex(env, "unsupported");
4515 Java_SQLite_Blob_close(JNIEnv *env, jobject obj)
4518 doblobfinal(env, obj);
4523 Java_SQLite_Blob_finalize(JNIEnv *env, jobject obj)
4526 doblobfinal(env, obj);
4531 JNICALL Java_SQLite_Database__1key(JNIEnv *env, jobject obj, jbyteArray key)
4536 handle *h = gethandle(env, obj);
4539 len = (*env)->GetArrayLength(env, key);
4540 data = (*env)->GetByteArrayElements(env, key, 0);
4554 throwex(env, "unsupported");
4565 throwclosed(env);
4576 Java_SQLite_Database__1rekey(JNIEnv *env, jobject obj, jbyteArray key)
4581 handle *h = gethandle(env, obj);
4584 len = (*env)->GetArrayLength(env, key);
4585 data = (*env)->GetByteArrayElements(env, key, 0);
4599 throwex(env, "unsupported");
4610 throwclosed(env);
4616 throwex(env, "unsupported");
4621 Java_SQLite_Database__1enable_1shared_1cache(JNIEnv *env, jclass cls,
4634 Java_SQLite_Database__1backup(JNIEnv *env, jclass cls, jobject bkupj,
4639 handle *hsrc = gethandle(env, src);
4640 handle *hdest = gethandle(env, dest);
4648 throwex(env, "null backup");
4652 throwex(env, "no source database");
4656 throwex(env, "no destination database");
4661 throwex(env, "not a SQLite 3 database");
4666 throwex(env, "source database not open");
4670 throwex(env, "destination database not open");
4673 trans2iso(env, hdest->haveutf, hdest->enc, destName, &dbnd);
4674 exc = (*env)->ExceptionOccurred(env);
4676 (*env)->DeleteLocalRef(env, exc);
4679 trans2iso(env, hsrc->haveutf, hsrc->enc, srcName, &dbns);
4680 exc = (*env)->ExceptionOccurred(env);
4683 (*env)->DeleteLocalRef(env, exc);
4693 seterr(env, src, sqlite3_errcode((sqlite3 *) hdest->sqlite));
4694 throwex(env, err ? err : "error in backup init");
4700 throwoom(env, "unable to get SQLite backup handle");
4709 (*env)->SetLongField(env, bkupj, F_SQLite_Backup_handle, vv.j);
4712 throwex(env, "unsupported");
4717 Java_SQLite_Backup__1finalize(JNIEnv *env, jobject obj)
4720 hbk *bk = gethbk(env, obj);
4748 (*env)->SetLongField(env, obj, F_SQLite_Backup_handle, 0);
4750 throwex(env, err ? err : "unknown error");
4757 Java_SQLite_Backup__1step(JNIEnv *env, jobject obj, jint n)
4761 hbk *bk = gethbk(env, obj);
4777 throwex(env, "backup step failed");
4782 throwex(env, "stale backup object");
4785 throwex(env, "unsupported");
4791 Java_SQLite_Backup__1remaining(JNIEnv *env, jobject obj)
4795 hbk *bk = gethbk(env, obj);
4803 throwex(env, "unsupported");
4809 Java_SQLite_Backup__1pagecount(JNIEnv *env, jobject obj)
4813 hbk *bk = gethbk(env, obj);
4821 throwex(env, "unsupported");
4831 JNIEnv *env = h->env;
4833 if (env && h->pr && msg) {
4835 jclass cls = (*env)->GetObjectClass(env, h->pr);
4838 mid = (*env)->GetMethodID(env, cls, "profile",
4848 trans2utf(env, h->haveutf, h->enc, msg, &tr);
4849 exc = (*env)->ExceptionOccurred(env);
4851 (*env)->DeleteLocalRef(env, exc);
4852 (*env)->ExceptionClear(env);
4855 (*env)->CallVoidMethod(env, h->pr, mid, tr.jstr, ms);
4856 (*env)->ExceptionClear(env);
4857 (*env)->DeleteLocalRef(env, tr.jstr);
4866 Java_SQLite_Database__1profile(JNIEnv *env, jobject obj, jobject tr)
4869 handle *h = gethandle(env, obj);
4872 delglobrefp(env, &h->pr);
4873 globrefset(env, tr, &h->pr);
4888 Java_SQLite_Database__1status(JNIEnv *env, jclass cls, jint op,
4900 (*env)->SetIntArrayRegion(env, info, 0, 2, jdata);
4908 Java_SQLite_Database__1db_1status(JNIEnv *env, jobject obj, jint op,
4913 handle *h = gethandle(env, obj);
4932 (*env)->SetIntArrayRegion(env, info, 0, 2, jdata);
4940 Java_SQLite_Stmt_internal_1init(JNIEnv *env, jclass cls)
4943 (*env)->GetFieldID(env, cls, "handle", "J");
4945 (*env)->GetFieldID(env, cls, "error_code", "I");
4949 Java_SQLite_Vm_internal_1init(JNIEnv *env, jclass cls)
4952 (*env)->GetFieldID(env, cls, "handle", "J");
4954 (*env)->GetFieldID(env, cls, "error_code", "I");
4958 Java_SQLite_Blob_internal_1init(JNIEnv *env, jclass cls)
4961 (*env)->GetFieldID(env, cls, "handle", "J");
4963 (*env)->GetFieldID(env, cls, "size", "I");
4967 Java_SQLite_Backup_internal_1init(JNIEnv *env, jclass cls)
4970 (*env)->GetFieldID(env, cls, "handle", "J");
4974 Java_SQLite_Database_internal_1init(JNIEnv *env, jclass cls)
4978 jclass jls = (*env)->FindClass(env, "java/lang/String");
4980 C_java_lang_String = (*env)->NewGlobalRef(env, jls);
4984 (*env)->GetFieldID(env, cls, "handle", "J");
4986 (*env)->GetFieldID(env, cls, "error_code", "I");
4988 (*env)->GetMethodID(env, C_java_lang_String, "getBytes", "()[B");
4990 (*env)->GetMethodID(env, C_java_lang_String, "getBytes",
4993 (*env)->GetMethodID(env, C_java_lang_String, "<init>", "([B)V");
4995 (*env)->GetMethodID(env, C_java_lang_String, "<init>",
5003 JNIEnv *env;
5013 if ((*vm)->GetEnv(vm, (void **) &env, JNI_VERSION_1_2)) {
5016 cls = (*env)->FindClass(env, "java/lang/String");
5020 C_java_lang_String = (*env)->NewGlobalRef(env, cls);
5027 JNIEnv *env;
5029 if ((*vm)->GetEnv(vm, (void **) &env, JNI_VERSION_1_2)) {
5033 (*env)->DeleteGlobalRef(env, C_java_lang_String);