< prev index next >

src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp

Print this page
rev 58565 : 8238358: Implementation of JEP 371: Hidden Classes
Reviewed-by: duke
Contributed-by: mandy.chung@oracle.com, lois.foltan@oracle.com, david.holmes@oracle.com, harold.seigel@oracle.com, serguei.spitsyn@oracle.com, alex.buckley@oracle.com, jamsheed.c.m@oracle.com

*** 1,7 **** /* ! * Copyright (c) 2016, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 1458,1481 **** ResourceMark rm(THREAD); ClassLoaderData* const cld = ik->class_loader_data(); Handle pd(THREAD, ik->protection_domain()); Symbol* const class_name = ik->name(); const char* const klass_name = class_name != NULL ? class_name->as_C_string() : ""; ClassFileParser new_parser(stream, class_name, cld, ! pd, ! NULL, // host klass ! NULL, // cp_patches ClassFileParser::INTERNAL, // internal visibility THREAD); if (HAS_PENDING_EXCEPTION) { log_pending_exception(PENDING_EXCEPTION); CLEAR_PENDING_EXCEPTION; return NULL; } ! InstanceKlass* const new_ik = new_parser.create_instance_klass(false, THREAD); if (HAS_PENDING_EXCEPTION) { log_pending_exception(PENDING_EXCEPTION); CLEAR_PENDING_EXCEPTION; return NULL; } --- 1458,1481 ---- ResourceMark rm(THREAD); ClassLoaderData* const cld = ik->class_loader_data(); Handle pd(THREAD, ik->protection_domain()); Symbol* const class_name = ik->name(); const char* const klass_name = class_name != NULL ? class_name->as_C_string() : ""; + ClassLoadInfo cl_info(pd); ClassFileParser new_parser(stream, class_name, cld, ! &cl_info, ClassFileParser::INTERNAL, // internal visibility THREAD); if (HAS_PENDING_EXCEPTION) { log_pending_exception(PENDING_EXCEPTION); CLEAR_PENDING_EXCEPTION; return NULL; } ! const ClassInstanceInfo* cl_inst_info = cl_info.class_hidden_info_ptr(); ! InstanceKlass* const new_ik = new_parser.create_instance_klass(false, *cl_inst_info, THREAD); if (HAS_PENDING_EXCEPTION) { log_pending_exception(PENDING_EXCEPTION); CLEAR_PENDING_EXCEPTION; return NULL; }
< prev index next >