hotspot/src/share/vm/prims/jvmtiEnv.cpp
changeset 39706 8b8fd966478b
parent 39207 5c6e88667985
child 40244 b3055c216762
equal deleted inserted replaced
39705:55baa0ddef24 39706:8b8fd966478b
    22  *
    22  *
    23  */
    23  */
    24 
    24 
    25 #include "precompiled.hpp"
    25 #include "precompiled.hpp"
    26 #include "classfile/classLoaderExt.hpp"
    26 #include "classfile/classLoaderExt.hpp"
       
    27 #include "classfile/modules.hpp"
    27 #include "classfile/systemDictionary.hpp"
    28 #include "classfile/systemDictionary.hpp"
    28 #include "classfile/vmSymbols.hpp"
    29 #include "classfile/vmSymbols.hpp"
    29 #include "interpreter/bytecodeStream.hpp"
    30 #include "interpreter/bytecodeStream.hpp"
    30 #include "interpreter/interpreter.hpp"
    31 #include "interpreter/interpreter.hpp"
    31 #include "jvmtifiles/jvmtiEnv.hpp"
    32 #include "jvmtifiles/jvmtiEnv.hpp"
   199 
   200 
   200     return jmc.get_all_modules(this, module_count_ptr, modules_ptr);
   201     return jmc.get_all_modules(this, module_count_ptr, modules_ptr);
   201 } /* end GetAllModules */
   202 } /* end GetAllModules */
   202 
   203 
   203 
   204 
       
   205 // class_loader - NULL is a valid value, must be pre-checked
       
   206 // package_name - pre-checked for NULL
       
   207 // module_ptr - pre-checked for NULL
       
   208 jvmtiError
       
   209 JvmtiEnv::GetNamedModule(jobject class_loader, const char* package_name, jobject* module_ptr) {
       
   210   JavaThread* THREAD = JavaThread::current(); // pass to macros
       
   211   ResourceMark rm(THREAD);
       
   212 
       
   213   Handle h_loader (THREAD, JNIHandles::resolve(class_loader));
       
   214   // Check that loader is a subclass of java.lang.ClassLoader.
       
   215   if (h_loader.not_null() && !java_lang_ClassLoader::is_subclass(h_loader->klass())) {
       
   216     return JVMTI_ERROR_ILLEGAL_ARGUMENT;
       
   217   }
       
   218   jobject module = Modules::get_named_module(h_loader, package_name, THREAD);
       
   219   if (HAS_PENDING_EXCEPTION) {
       
   220     CLEAR_PENDING_EXCEPTION;
       
   221     return JVMTI_ERROR_INTERNAL; // unexpected exception
       
   222   }
       
   223   *module_ptr = module;
       
   224   return JVMTI_ERROR_NONE;
       
   225 } /* end GetNamedModule */
       
   226 
   204   //
   227   //
   205   // Class functions
   228   // Class functions
   206   //
   229   //
   207 
   230 
   208 // class_count_ptr - pre-checked for NULL
   231 // class_count_ptr - pre-checked for NULL