Class_Handle class_loader_lookup_class(Class_Loader_Handle classloader, const char* name) { assert(classloader); assert(name); Global_Env *env = VM_Global_State::loader_env; String* class_name = env->string_pool.lookup( name ); return classloader->LookupClass(class_name); } // class_loader_lookup_class
// This function is for native library support // It takes a class name with .s not /s. // FIXME: caller could convert it itself Class_Handle class_find_loaded(Class_Loader_Handle loader, const char* name) { char* name3 = strdup(name); char* p = name3; while (*p) { if (*p=='.') *p='/'; p++; } Global_Env* env = VM_Global_State::loader_env; String* name2 = env->string_pool.lookup(name3); Class* ch; if (loader) { ch = loader->LookupClass(name2); } else { ch = env->bootstrap_class_loader->LookupClass(name2); } STD_FREE(name3); if(ch && (!ch->verify(env) || !ch->prepare(env))) return NULL; return ch; }