예제 #1
0
/* SYMBOL: java_lang_Class_newInstance()Ljava/lang/Object; */
void
Kaffe_java_lang_Class_newInstance_stub(stack_item* _P_, stack_item* _R_)
{
	extern struct Hjava_lang_Object* java_lang_Class_newInstance(void*);
	struct Hjava_lang_Object* ret = java_lang_Class_newInstance(_P_[0].p);
	return_ref(ret);
}
예제 #2
0
파일: pyjlist.c 프로젝트: mrj0/jep
/*
 * Convenience method to copy a list's items into a new java.util.List of the
 * same type.
 */
static PyObject* pyjlist_new_copy(PyObject *toCopy)
{
    jobject       newList     = NULL;
    PyJObject    *obj         = (PyJObject*) toCopy;
    JNIEnv       *env         = pyembed_get_env();
    PyObject     *result      = NULL;


    if (!PyJList_Check(toCopy)) {
        PyErr_Format(PyExc_RuntimeError, "pyjlist_new_copy() must receive a PyJList");
        return NULL;
    }

    if ((*env)->PushLocalFrame(env, JLOCAL_REFS) != 0) {
        process_java_exception(env);
        return NULL;
    }

    newList = java_lang_Class_newInstance(env, obj->clazz);
    if (process_java_exception(env) || !newList) {
        goto FINALLY;
    }

    java_util_List_addAll(env, newList, obj->object);
    if (process_java_exception(env)) {
        goto FINALLY;
    }

    result = PyJList_Wrap(env, newList, obj->clazz);
FINALLY:
    (*env)->PopLocalFrame(env, NULL);
    return result;
}