77 cached_class_file);
78
79 if (ptr != stream->buffer()) {
80 // JVMTI agent has modified class file data.
81 // Set new class file stream using JVMTI agent modified class file data.
82 stream = new ClassFileStream(ptr,
83 end_ptr - ptr,
84 stream->source(),
85 stream->need_verify());
86 }
87 }
88
89 return stream;
90 }
91
92
93 instanceKlassHandle KlassFactory::create_from_stream(ClassFileStream* stream,
94 Symbol* name,
95 ClassLoaderData* loader_data,
96 Handle protection_domain,
97 const Klass* host_klass,
98 GrowableArray<Handle>* cp_patches,
99 TRAPS) {
100
101 assert(stream != NULL, "invariant");
102 assert(loader_data != NULL, "invariant");
103 assert(THREAD->is_Java_thread(), "must be a JavaThread");
104
105 ResourceMark rm;
106 HandleMark hm;
107
108 JvmtiCachedClassFileData* cached_class_file = NULL;
109
110 ClassFileStream* old_stream = stream;
111
112 // Skip this processing for VM anonymous classes
113 if (host_klass == NULL) {
114 stream = check_class_file_load_hook(stream,
115 name,
116 loader_data,
117 protection_domain,
|
77 cached_class_file);
78
79 if (ptr != stream->buffer()) {
80 // JVMTI agent has modified class file data.
81 // Set new class file stream using JVMTI agent modified class file data.
82 stream = new ClassFileStream(ptr,
83 end_ptr - ptr,
84 stream->source(),
85 stream->need_verify());
86 }
87 }
88
89 return stream;
90 }
91
92
93 instanceKlassHandle KlassFactory::create_from_stream(ClassFileStream* stream,
94 Symbol* name,
95 ClassLoaderData* loader_data,
96 Handle protection_domain,
97 const InstanceKlass* host_klass,
98 GrowableArray<Handle>* cp_patches,
99 TRAPS) {
100
101 assert(stream != NULL, "invariant");
102 assert(loader_data != NULL, "invariant");
103 assert(THREAD->is_Java_thread(), "must be a JavaThread");
104
105 ResourceMark rm;
106 HandleMark hm;
107
108 JvmtiCachedClassFileData* cached_class_file = NULL;
109
110 ClassFileStream* old_stream = stream;
111
112 // Skip this processing for VM anonymous classes
113 if (host_klass == NULL) {
114 stream = check_class_file_load_hook(stream,
115 name,
116 loader_data,
117 protection_domain,
|