/* create/initialize an object */ DB_ENV_JAVAINFO * dbjie_construct(JNIEnv *jnienv, jobject default_errcall, int is_dbopen) { DB_ENV_JAVAINFO *dbjie; dbjie = (DB_ENV_JAVAINFO *)malloc(sizeof(DB_ENV_JAVAINFO)); memset(dbjie, 0, sizeof(DB_ENV_JAVAINFO)); dbjie->is_dbopen_ = is_dbopen; if ((*jnienv)->GetJavaVM(jnienv, &dbjie->javavm_) != 0) { free(dbjie); report_exception(jnienv, "cannot get Java VM", 0, 0); return (NULL); } /* The default error call just prints to the 'System.err' * stream. If the user does set_errcall to null, we'll * want to have a reference to set it back to. * * Why do we have always set db_errcall to our own callback? * Because it makes the interaction between setting the * error prefix, error stream, and user's error callback * that much easier. */ dbjie->default_errcall_ = NEW_GLOBAL_REF(jnienv, default_errcall); dbjie->errcall_ = NEW_GLOBAL_REF(jnienv, default_errcall); return (dbjie); }
void dbji_set_h_hash_object(DB_JAVAINFO *dbji, JNIEnv *jnienv, DB *db, jobject jhash) { jclass h_hash_class; if (dbji->h_hash_method_id_ == NULL) { h_hash_class = get_class(jnienv, name_DbHash); dbji->h_hash_method_id_ = (*jnienv)->GetMethodID(jnienv, h_hash_class, "hash", "(Lcom/sleepycat/db/Db;" "[BI)I"); if (dbji->h_hash_method_id_ == NULL) { /* XXX * We should really have a better way * to translate this to a Java exception class. * In theory, it shouldn't happen. */ report_exception(jnienv, "Cannot find callback method", EFAULT, 0); return; } } if (dbji->h_hash_ != NULL) DELETE_GLOBAL_REF(jnienv, dbji->h_hash_); if (jhash == NULL) db->set_h_hash(db, NULL); else db->set_h_hash(db, Db_h_hash_callback); dbji->h_hash_ = NEW_GLOBAL_REF(jnienv, jhash); }
void dbji_set_dup_compare_object(DB_JAVAINFO *dbji, JNIEnv *jnienv, DB *db, jobject jcompare) { jclass dup_compare_class; if (dbji->dup_compare_method_id_ == NULL) { dup_compare_class = get_class(jnienv, name_DbDupCompare); dbji->dup_compare_method_id_ = (*jnienv)->GetMethodID(jnienv, dup_compare_class, "dup_compare", "(Lcom/sleepycat/db/Db;" "Lcom/sleepycat/db/Dbt;" "Lcom/sleepycat/db/Dbt;)I"); if (dbji->dup_compare_method_id_ == NULL) { /* XXX * We should really have a better way * to translate this to a Java exception class. * In theory, it shouldn't happen. */ report_exception(jnienv, "Cannot find callback method", EFAULT, 0); return; } } if (dbji->dup_compare_ != NULL) DELETE_GLOBAL_REF(jnienv, dbji->dup_compare_); if (jcompare == NULL) db->set_dup_compare(db, NULL); else db->set_dup_compare(db, Db_dup_compare_callback); dbji->dup_compare_ = NEW_GLOBAL_REF(jnienv, jcompare); }
// public static extern new void _InitProxy() [static] :15 void HttpRequest::_InitProxy1() { if (HttpRequest::_javaProxyClass1()) { return; } INIT_JNI; HttpRequest::_javaProxyClass1() = NEW_GLOBAL_REF(jclass,::g::Android::Base::JNI::LoadClass(jni, "com.Bindings.Android_com_fuse_ExperimentalHttp_HttpRequest")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!HttpRequest::_javaProxyClass1()) { THROW_UNO_EXCEPTION("Unable to cache class 'Android_com_fuse_ExperimentalHttp_HttpRequest'", 69);; } BEGIN_REG_MTD(7); //#if !#{Android.com.fuse.ExperimentalHttp.HttpRequest.OnDataReceived(Android.Base.Wrappers.IJWrapper,int):IsStripped} REG_MTD(0,"__n_OnDataReceived","(J[BIJJ)V",::Android_com_fuse_ExperimentalHttp_HttpRequest__OnDataReceived44285); //#endif //#if !#{Android.com.fuse.ExperimentalHttp.HttpRequest.OnAborted():IsStripped} REG_MTD(1,"__n_OnAborted","(J)V",::Android_com_fuse_ExperimentalHttp_HttpRequest__OnAborted44286); //#endif //#if !#{Android.com.fuse.ExperimentalHttp.HttpRequest.OnError(Android.Base.Wrappers.IJWrapper):IsStripped} REG_MTD(2,"__n_OnError","(JLjava/lang/String;J)V",::Android_com_fuse_ExperimentalHttp_HttpRequest__OnError44287); //#endif //#if !#{Android.com.fuse.ExperimentalHttp.HttpRequest.OnTimeout():IsStripped} REG_MTD(3,"__n_OnTimeout","(J)V",::Android_com_fuse_ExperimentalHttp_HttpRequest__OnTimeout44288); //#endif //#if !#{Android.com.fuse.ExperimentalHttp.HttpRequest.OnDone():IsStripped} REG_MTD(4,"__n_OnDone","(J)V",::Android_com_fuse_ExperimentalHttp_HttpRequest__OnDone44289); //#endif //#if !#{Android.com.fuse.ExperimentalHttp.HttpRequest.OnHeadersReceived():IsStripped} REG_MTD(5,"__n_OnHeadersReceived","(J)V",::Android_com_fuse_ExperimentalHttp_HttpRequest__OnHeadersReceived44290); //#endif //#if !#{Android.com.fuse.ExperimentalHttp.HttpRequest.OnProgress(int,int,bool):IsStripped} REG_MTD(6,"__n_OnProgress","(JIIZJJJ)V",::Android_com_fuse_ExperimentalHttp_HttpRequest__OnProgress44291); //#endif COMMIT_REG_MTD(HttpRequest::_javaProxyClass1()); }
// public static extern new void _Init() [static] :19 void HttpRequest::_Init1() { if (HttpRequest::_javaClass1()) { return; } INIT_JNI; HttpRequest::_javaClass1() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("com/fuse/ExperimentalHttp/HttpRequest")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!HttpRequest::_javaClass1()) { THROW_UNO_EXCEPTION("Unable to cache class 'com.fuse.ExperimentalHttp.HttpRequest'", 61);; } }
// public static extern new void _Init() [static] :534 void InputStream::_Init2() { if (InputStream::_javaClass2()) { return; } INIT_JNI; InputStream::_javaClass2() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("java/io/InputStream")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!InputStream::_javaClass2()) { THROW_UNO_EXCEPTION("Unable to cache class 'java.io.InputStream'", 43);; } }
// public static extern new void _Init() [static] :1264 void Activity::_Init5() { if (Activity::_javaClass5()) { return; } INIT_JNI; Activity::_javaClass5() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/app/Activity")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!Activity::_javaClass5()) { THROW_UNO_EXCEPTION("Unable to cache class 'android.app.Activity'", 44);; } }
// public static extern new void _Init() [static] :15 void Uri::_Init2() { if (Uri::_javaClass2()) { return; } INIT_JNI; Uri::_javaClass2() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/net/Uri")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!Uri::_javaClass2()) { THROW_UNO_EXCEPTION("Unable to cache class 'android.net.Uri'", 39);; } }
void GLUtils___Init_2(::uStatic* __this) { if (::app::Android::android::opengl::GLUtils___javaClass_2) { return; } INIT_JNI; ::app::Android::android::opengl::GLUtils___javaClass_2 = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/opengl/GLUtils")); ::app::Android::Base::JNI__CheckException_1(NULL, U_JNIVAR); if (!::app::Android::android::opengl::GLUtils___javaClass_2) { THROW_UNO_EXCEPTION("Unable to cache class 'android.opengl.GLUtils'", 46);; } }
// public static extern new void _Init() [static] :1335 void ValueAnimator::_Init3() { if (ValueAnimator::_javaClass3()) { return; } INIT_JNI; ValueAnimator::_javaClass3() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/animation/ValueAnimator")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!ValueAnimator::_javaClass3()) { THROW_UNO_EXCEPTION("Unable to cache class 'android.animation.ValueAnimator'", 55);; } }
// public static extern new void _Init() [static] :60 void Layout::_Init2() { if (Layout::_javaClass2()) { return; } INIT_JNI; Layout::_javaClass2() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/text/Layout")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!Layout::_javaClass2()) { THROW_UNO_EXCEPTION("Unable to cache class 'android.text.Layout'", 43);; } }
// public static extern new void _Init() [static] :5090 void TypedValue::_Init2() { if (TypedValue::_javaClass2()) { return; } INIT_JNI; TypedValue::_javaClass2() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/util/TypedValue")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!TypedValue::_javaClass2()) { THROW_UNO_EXCEPTION("Unable to cache class 'android.util.TypedValue'", 47);; } }
// public static extern new void _Init() [static] :605 void AccessibilityEvent::_Init3() { uStackFrame __("Android.android.view.accessibility.AccessibilityEvent", "_Init()"); if (AccessibilityEvent::_javaClass3()) { return; } INIT_JNI; AccessibilityEvent::_javaClass3() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/view/accessibility/AccessibilityEvent")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!AccessibilityEvent::_javaClass3()) { THROW_UNO_EXCEPTION("Unable to cache class 'android.view.accessibility.AccessibilityEvent'", 69);; } }
// public static extern new void _Init() [static] :2275 void TimeAnimator::_Init4() { uStackFrame __("Android.android.animation.TimeAnimator", "_Init()"); if (TimeAnimator::_javaClass4()) { return; } INIT_JNI; TimeAnimator::_javaClass4() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/animation/TimeAnimator")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!TimeAnimator::_javaClass4()) { THROW_UNO_EXCEPTION("Unable to cache class 'android.animation.TimeAnimator'", 54);; } }
// public static extern new void _Init() [static] :9025 void Class::_Init2() { if (Class::_javaClass2()) { return; } INIT_JNI; Class::_javaClass2() = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("java/lang/Class")); ::g::Android::Base::JNI::CheckException1(U_JNIVAR); if (!Class::_javaClass2()) { THROW_UNO_EXCEPTION("Unable to cache class 'java.lang.Class'", 39);; } }
void dbjie_set_errcall(DB_ENV_JAVAINFO *dbjie, JNIEnv *jnienv, jobject new_errcall) { /* If the new_errcall is null, we'll set the error call * to the default one. */ if (new_errcall == NULL) new_errcall = dbjie->default_errcall_; DELETE_GLOBAL_REF(jnienv, dbjie->errcall_); dbjie->errcall_ = NEW_GLOBAL_REF(jnienv, new_errcall); }
// public TimeAnimator() [instance] :2264 void TimeAnimator::ctor_8() { ctor_7(::g::Android::Base::JNI::GetDefaultObject(), ::g::Android::Base::JNI::GetDefaultType(), false, false); INIT_JNI;; CLASS_INIT(TimeAnimator::_javaClass4(),TimeAnimator::_Init4());; CACHE_METHOD(TimeAnimator::TimeAnimator_376_ID_c(),TimeAnimator::_javaClass4(),"<init>","()V",GetMethodID,"Id for fallback method android.animation.TimeAnimator.<init> could not be cached",80);; jobject result;; jobject _tmp;; _tmp = U_JNIVAR->NewObject(TimeAnimator::_javaClass4(), TimeAnimator::TimeAnimator_376_ID_c());; ::g::Android::Base::JNI::CheckException1(U_JNIVAR);; _javaObject = NEW_GLOBAL_REF(jobject,_tmp);; U_JNIVAR->DeleteLocalRef(_tmp);; }
void dbjie_set_tx_recover_object(DB_ENV_JAVAINFO *dbjie, JNIEnv *jnienv, DB_ENV *dbenv, jobject jtx_recover) { int err; if (dbjie->tx_recover_ != NULL) { DELETE_GLOBAL_REF(jnienv, dbjie->tx_recover_); } if (jtx_recover == NULL) { if ((err = dbenv->set_tx_recover(dbenv, NULL)) != 0) report_exception(jnienv, "set_tx_recover failed", err, 0); } else { if ((err = dbenv->set_tx_recover(dbenv, DbEnv_tx_recover_callback)) != 0) report_exception(jnienv, "set_tx_recover failed", err, 0); } dbjie->tx_recover_ = NEW_GLOBAL_REF(jnienv, jtx_recover); }
void dbjie_set_feedback_object(DB_ENV_JAVAINFO *dbjie, JNIEnv *jnienv, DB_ENV *dbenv, jobject jfeedback) { int err; if (dbjie->feedback_ != NULL) { DELETE_GLOBAL_REF(jnienv, dbjie->feedback_); } if (jfeedback == NULL) { if ((err = dbenv->set_feedback(dbenv, NULL)) != 0) report_exception(jnienv, "set_feedback failed", err, 0); } else { if ((err = dbenv->set_feedback(dbenv, DbEnv_feedback_callback)) != 0) report_exception(jnienv, "set_feedback failed", err, 0); } dbjie->feedback_ = NEW_GLOBAL_REF(jnienv, jfeedback); }
void dbjie_set_recovery_init_object(DB_ENV_JAVAINFO *dbjie, JNIEnv *jnienv, DB_ENV *dbenv, jobject jrecovery_init) { int err; if (dbjie->recovery_init_ != NULL) { DELETE_GLOBAL_REF(jnienv, dbjie->recovery_init_); } if (jrecovery_init == NULL) { if ((err = dbenv->set_recovery_init(dbenv, NULL)) != 0) report_exception(jnienv, "set_recovery_init failed", err, 0); } else { if ((err = dbenv->set_recovery_init(dbenv, DbEnv_recovery_init_callback)) != 0) report_exception(jnienv, "set_recovery_init failed", err, 0); } dbjie->recovery_init_ = NEW_GLOBAL_REF(jnienv, jrecovery_init); }
void dbji_set_bt_prefix_object(DB_JAVAINFO *dbji, JNIEnv *jnienv, DB *db, jobject jprefix) { jclass bt_prefix_class; if (dbji->bt_prefix_method_id_ == NULL) { bt_prefix_class = get_class(jnienv, name_DbBtreePrefix); dbji->bt_prefix_method_id_ = (*jnienv)->GetMethodID(jnienv, bt_prefix_class, "bt_prefix", "(Lcom/sleepycat/db/Db;" "Lcom/sleepycat/db/Dbt;" "Lcom/sleepycat/db/Dbt;)I"); if (dbji->bt_prefix_method_id_ == NULL) { /* XXX * We should really have a better way * to translate this to a Java exception class. * In theory, it shouldn't happen. */ report_exception(jnienv, "Cannot find callback method", EFAULT, 0); return; } } if (dbji->bt_prefix_ != NULL) { DELETE_GLOBAL_REF(jnienv, dbji->bt_prefix_); } if (jprefix == NULL) { db->set_bt_prefix(db, NULL); } else { db->set_bt_prefix(db, Db_bt_prefix_callback); } dbji->bt_prefix_ = NEW_GLOBAL_REF(jnienv, jprefix); }
void dbji_set_feedback_object(DB_JAVAINFO *dbji, JNIEnv *jnienv, DB *db, jobject jfeedback) { jclass feedback_class; if (dbji->feedback_method_id_ == NULL) { feedback_class = get_class(jnienv, name_DbFeedback); dbji->feedback_method_id_ = (*jnienv)->GetMethodID(jnienv, feedback_class, "feedback", "(Lcom/sleepycat/db/Db;II)V"); if (dbji->feedback_method_id_ != NULL) { /* XXX * We should really have a better way * to translate this to a Java exception class. * In theory, it shouldn't happen. */ report_exception(jnienv, "Cannot find callback method", EFAULT, 0); return; } } if (dbji->feedback_ != NULL) { DELETE_GLOBAL_REF(jnienv, dbji->feedback_); } if (jfeedback == NULL) { db->set_feedback(db, NULL); } else { db->set_feedback(db, Db_feedback_callback); } dbji->feedback_ = NEW_GLOBAL_REF(jnienv, jfeedback); }
void dbji_set_append_recno_object(DB_JAVAINFO *dbji, JNIEnv *jnienv, DB *db, jobject jcallback) { jclass append_recno_class; if (dbji->append_recno_method_id_ == NULL) { append_recno_class = get_class(jnienv, name_DbAppendRecno); dbji->append_recno_method_id_ = (*jnienv)->GetMethodID(jnienv, append_recno_class, "db_append_recno", "(Lcom/sleepycat/db/Db;" "Lcom/sleepycat/db/Dbt;I)V"); if (dbji->append_recno_method_id_ == NULL) { /* XXX * We should really have a better way * to translate this to a Java exception class. * In theory, it shouldn't happen. */ report_exception(jnienv, "Cannot find callback method", EFAULT, 0); return; } } if (dbji->append_recno_ != NULL) { DELETE_GLOBAL_REF(jnienv, dbji->append_recno_); } if (jcallback == NULL) { db->set_append_recno(db, NULL); } else { db->set_append_recno(db, Db_append_recno_callback); } dbji->append_recno_ = NEW_GLOBAL_REF(jnienv, jcallback); }
extern int dbji_call_append_recno(DB_JAVAINFO *dbji, DB *db, jobject jdb, DBT *dbt, jint recno) { JNIEnv *jnienv; jobject jdbt; DBT_JAVAINFO *dbtji; jbyteArray arr; unsigned int arraylen; unsigned char *data; COMPQUIET(db, NULL); jnienv = dbji_get_jnienv(dbji); if (jnienv == NULL) { fprintf(stderr, "Cannot attach to current thread!\n"); return (0); } /* XXX * We should have a pool of Dbt objects used for this purpose * instead of creating new ones each time. Because of * multithreading, we may need an arbitrary number (more than two). * We might also have a byte arrays that grow as needed, * so we don't need to allocate those either. * * Note, we do not set the 'create_array_' flag as on other * callbacks as we are creating the array here. */ jdbt = create_default_object(jnienv, name_DBT); dbtji = get_DBT_JAVAINFO(jnienv, jdbt); memcpy(&dbtji->dbt, dbt, sizeof(DBT)); dbtji->dbt.data = NULL; arr = (*jnienv)->NewByteArray(jnienv, dbt->size); (*jnienv)->SetByteArrayRegion(jnienv, arr, 0, dbt->size, (jbyte *)dbt->data); dbtji->array_ = (jbyteArray)NEW_GLOBAL_REF(jnienv, arr); DB_ASSERT(dbji->append_recno_method_id_ != NULL); (*jnienv)->CallVoidMethod(jnienv, dbji->append_recno_, dbji->append_recno_method_id_, jdb, jdbt, recno); /* The underlying C API requires that an errno be returned * on error. Java users know nothing of errnos, so we * allow them to throw exceptions instead. We leave the * exception in place and return DB_JAVA_CALLBACK to the C API * that called us. Eventually the DB->get will fail and * when java prepares to throw an exception in * report_exception(), this will be spotted as a special case, * and the original exception will be preserved. * * Note: we have sometimes noticed strange behavior with * exceptions under Linux 1.1.7 JVM. (i.e. multiple calls * to ExceptionOccurred() may report different results). * Currently we don't know of any problems related to this * in our code, but if it pops up in the future, users are * encouranged to get a more recent JVM. */ if ((*jnienv)->ExceptionOccurred(jnienv) != NULL) return (DB_JAVA_CALLBACK); if (dbtji->array_ == NULL) { report_exception(jnienv, "Dbt.data is null", 0, 0); return (EFAULT); } arraylen = (*jnienv)->GetArrayLength(jnienv, dbtji->array_); if (dbtji->offset_ < 0 ) { report_exception(jnienv, "Dbt.offset illegal", 0, 0); return (EFAULT); } if (dbt->ulen + dbtji->offset_ > arraylen) { report_exception(jnienv, "Dbt.ulen + Dbt.offset greater than array length", 0, 0); return (EFAULT); } data = (*jnienv)->GetByteArrayElements(jnienv, dbtji->array_, (jboolean *)0); dbt->data = data + dbtji->offset_; return (0); }
void AccessibilityNodeInfo___Init_2(::uStatic* __this) { if (::app::Android::android::view::accessibility::AccessibilityNodeInfo___javaClass_2) { return; } INIT_JNI; ::app::Android::android::view::accessibility::AccessibilityNodeInfo___javaClass_2 = NEW_GLOBAL_REF(jclass,LOAD_SYS_CLASS("android/view/accessibility/AccessibilityNodeInfo")); ::app::Android::Base::JNI__CheckException_1(NULL, U_JNIVAR); if (!::app::Android::android::view::accessibility::AccessibilityNodeInfo___javaClass_2) { THROW_UNO_EXCEPTION("Unable to cache class 'android.view.accessibility.AccessibilityNodeInfo'", 72);; } }