void InstanceClass::initialize(JVM_SINGLE_ARG_TRAPS) { JavaClassObj::Raw mirror = java_mirror(); if (mirror().is_initialized()) { return; } initialize_internal(Thread::current(), &mirror JVM_CHECK); }
int varnam_init(const char *scheme_file, varnam **handle, char **msg) { int rc; varnam *c; struct varnam_internal *vi; size_t filename_length; if(scheme_file == NULL) return VARNAM_ARGS_ERROR; c = (varnam *) xmalloc(sizeof (varnam)); if(!c) return VARNAM_MEMORY_ERROR; vi = initialize_internal(); if(!vi) return VARNAM_MEMORY_ERROR; vi->message = (char *) xmalloc(sizeof (char) * VARNAM_LIB_TEMP_BUFFER_SIZE); if(!vi->message) return VARNAM_MEMORY_ERROR; rc = sqlite3_open(scheme_file, &vi->db); if( rc ) { asprintf(msg, "Can't open %s: %s\n", scheme_file, sqlite3_errmsg(vi->db)); sqlite3_close(vi->db); return VARNAM_STORAGE_ERROR; } filename_length = strlen(scheme_file); c->scheme_file = (char *) xmalloc(filename_length + 1); if(!c->scheme_file) return VARNAM_MEMORY_ERROR; strncpy(c->scheme_file, scheme_file, filename_length + 1); vi->renderers = renderers; c->internal = vi; rc = ensure_schema_exist(c, msg); if (rc != VARNAM_SUCCESS) return rc; *handle = c; return VARNAM_SUCCESS; }
// Initialize a class on behalf of a task. // When entering here, the class may either be not initialized at all, or it // may be being initialized. // // If not initialized, a task mirror is created. // setup_java_mirror set the task mirror pointer in the task mirror table // of the class in "initializing" state. // set_initialized sets the task mirror pointer in "initialized" state. ReturnOop InstanceClass::initialize_for_task(JVM_SINGLE_ARG_TRAPS){ UsingFastOops fast_oops; TaskMirror::Fast tm; tm = task_mirror_desc(); if (TaskMirrorDesc::is_being_initialized_mirror((TaskMirrorDesc*)tm.obj())) { tm = TaskMirror::clinit_list_lookup(this); if (tm.is_null()) { // allocate Task mirror tm = setup_task_mirror(static_field_size(), vtable_length(), true JVM_CHECK_0); initialize_static_fields(&tm); } } else { return tm.obj(); } GUARANTEE(!tm.is_null(), "null task mirror"); JavaClassObj::Fast m = tm().real_java_mirror(); initialize_internal(Thread::current(), &m JVM_CHECK_0); return tm.obj(); }
lagopus_result_t flow_cmd_initialize(void) { return initialize_internal(); }