src/share/vm/jfr/recorder/checkpoint/types/jfrTypeSet.cpp

changeset 9941
45c8de52649c
parent 9858
b985cbb00e68
child 9949
fb74ae591209
     1.1 --- a/src/share/vm/jfr/recorder/checkpoint/types/jfrTypeSet.cpp	Wed Jun 03 01:21:00 2020 +0100
     1.2 +++ b/src/share/vm/jfr/recorder/checkpoint/types/jfrTypeSet.cpp	Tue Jun 02 14:29:43 2020 +0800
     1.3 @@ -25,7 +25,6 @@
     1.4  #include "precompiled.hpp"
     1.5  #include "classfile/classLoaderData.inline.hpp"
     1.6  #include "classfile/javaClasses.hpp"
     1.7 -// XXX #include "classfile/packageEntry.hpp"
     1.8  #include "classfile/symbolTable.hpp"
     1.9  #include "classfile/systemDictionary.hpp"
    1.10  #include "jfr/jfr.hpp"
    1.11 @@ -54,20 +53,12 @@
    1.12  #define CREATE_SYMBOL_ID(sym_id) (((u8)((checkpoint_id << 24) | sym_id)))
    1.13  
    1.14  typedef const Klass* KlassPtr;
    1.15 -// XXX typedef const PackageEntry* PkgPtr;
    1.16  typedef const ClassLoaderData* CldPtr;
    1.17  typedef const Method* MethodPtr;
    1.18  typedef const Symbol* SymbolPtr;
    1.19  typedef const JfrSymbolId::SymbolEntry* SymbolEntryPtr;
    1.20  typedef const JfrSymbolId::CStringEntry* CStringEntryPtr;
    1.21  
    1.22 -// XXX
    1.23 -// static traceid package_id(KlassPtr klass) {
    1.24 -//   assert(klass != NULL, "invariant");
    1.25 -//   PkgPtr pkg_entry = klass->package();
    1.26 -//   return pkg_entry == NULL ? 0 : TRACE_ID(pkg_entry);
    1.27 -// }
    1.28 -
    1.29  static traceid cld_id(CldPtr cld) {
    1.30    assert(cld != NULL, "invariant");
    1.31    return cld->is_anonymous() ? 0 : TRACE_ID(cld);
    1.32 @@ -75,11 +66,6 @@
    1.33  
    1.34  static void tag_leakp_klass_artifacts(KlassPtr k, bool class_unload) {
    1.35    assert(k != NULL, "invariant");
    1.36 -  // XXX
    1.37 -  // PkgPtr pkg = k->package();
    1.38 -  // if (pkg != NULL) {
    1.39 -  //   tag_leakp_artifact(pkg, class_unload);
    1.40 -  // }
    1.41    CldPtr cld = k->class_loader_data();
    1.42    assert(cld != NULL, "invariant");
    1.43    if (!cld->is_anonymous()) {
    1.44 @@ -125,7 +111,7 @@
    1.45      theklass = obj_arr_klass->bottom_klass();
    1.46    }
    1.47    if (theklass->oop_is_instance()) {
    1.48 -    pkg_id = 0; // XXX package_id(theklass);
    1.49 +    pkg_id = 0;
    1.50    } else {
    1.51      assert(theklass->oop_is_typeArray(), "invariant");
    1.52    }
    1.53 @@ -169,29 +155,6 @@
    1.54  typedef JfrArtifactWriterImplHost<MethodPtr, write__artifact__method> MethodWriterImplTarget;
    1.55  typedef JfrArtifactWriterHost<MethodWriterImplTarget, TYPE_METHOD> MethodWriterImpl;
    1.56  
    1.57 -// XXX
    1.58 -// int write__artifact__package(JfrCheckpointWriter* writer, JfrArtifactSet* artifacts, const void* p) {
    1.59 -//   assert(writer != NULL, "invariant");
    1.60 -//   assert(artifacts != NULL, "invariant");
    1.61 -//   assert(p != NULL, "invariant");
    1.62 -//   PkgPtr pkg = (PkgPtr)p;
    1.63 -//   Symbol* const pkg_name = pkg->name();
    1.64 -//   const traceid package_name_symbol_id = pkg_name != NULL ? artifacts->mark(pkg_name) : 0;
    1.65 -//   assert(package_name_symbol_id > 0, "invariant");
    1.66 -//   writer->write((traceid)TRACE_ID(pkg));
    1.67 -//   writer->write((traceid)CREATE_SYMBOL_ID(package_name_symbol_id));
    1.68 -//   writer->write((bool)pkg->is_exported());
    1.69 -//   return 1;
    1.70 -// }
    1.71 -
    1.72 -// typedef LeakPredicate<PkgPtr> LeakPackagePredicate;
    1.73 -// int _compare_pkg_ptr_(PkgPtr const& lhs, PkgPtr const& rhs) { return lhs > rhs ? 1 : (lhs < rhs) ? -1 : 0; }
    1.74 -// typedef UniquePredicate<PkgPtr, _compare_pkg_ptr_> PackagePredicate;
    1.75 -// typedef JfrPredicatedArtifactWriterImplHost<PkgPtr, LeakPackagePredicate, write__artifact__package> LeakPackageWriterImpl;
    1.76 -// typedef JfrPredicatedArtifactWriterImplHost<PkgPtr, PackagePredicate, write__artifact__package> PackageWriterImpl;
    1.77 -// typedef JfrArtifactWriterHost<LeakPackageWriterImpl, TYPE_PACKAGE> LeakPackageWriter;
    1.78 -// typedef JfrArtifactWriterHost<PackageWriterImpl, TYPE_PACKAGE> PackageWriter;
    1.79 -
    1.80  int write__artifact__classloader(JfrCheckpointWriter* writer, JfrArtifactSet* artifacts, const void* c) {
    1.81    assert(c != NULL, "invariant");
    1.82    CldPtr cld = (CldPtr)c;
    1.83 @@ -292,7 +255,6 @@
    1.84    UniquePredicate<traceid, _compare_traceid_> _unique_predicate;
    1.85  
    1.86    int klass_symbols(KlassPtr klass);
    1.87 -// XXX  int package_symbols(PkgPtr pkg);
    1.88    int class_loader_symbols(CldPtr cld);
    1.89    int method_symbols(KlassPtr klass);
    1.90  
    1.91 @@ -312,11 +274,6 @@
    1.92      int count = 0;
    1.93      if (_predicate(klass)) {
    1.94        count += klass_symbols(klass);
    1.95 -      // XXX
    1.96 -      // PkgPtr pkg = klass->package();
    1.97 -      // if (pkg != NULL) {
    1.98 -      //   count += package_symbols(pkg);
    1.99 -      // }
   1.100        CldPtr cld = klass->class_loader_data();
   1.101        assert(cld != NULL, "invariant");
   1.102        if (!cld->is_anonymous()) {
   1.103 @@ -346,52 +303,6 @@
   1.104    return _unique_predicate(entry->id()) ? write__artifact__symbol__entry__(this->_writer, entry) : 0;
   1.105  }
   1.106  
   1.107 -// XXX
   1.108 -// template <template <typename> class Predicate>
   1.109 -// int KlassSymbolWriterImpl<Predicate>::package_symbols(PkgPtr pkg) {
   1.110 -//   assert(pkg != NULL, "invariant");
   1.111 -//   SymbolPtr pkg_name = pkg->name();
   1.112 -//   assert(pkg_name != NULL, "invariant");
   1.113 -//   SymbolEntryPtr package_symbol = this->_artifacts->map_symbol(pkg_name);
   1.114 -//   assert(package_symbol != NULL, "invariant");
   1.115 -//   return _unique_predicate(package_symbol->id()) ?
   1.116 -//     write__artifact__symbol__entry__(this->_writer, package_symbol) : 0;
   1.117 -// }
   1.118 -
   1.119 -// XXX
   1.120 -// template <template <typename> class Predicate>
   1.121 -// int KlassSymbolWriterImpl<Predicate>::module_symbols(ModPtr module) {
   1.122 -//   assert(module != NULL, "invariant");
   1.123 -//   assert(module->is_named(), "invariant");
   1.124 -//   int count = 0;
   1.125 -//   SymbolPtr sym = module->name();
   1.126 -//   SymbolEntryPtr entry = NULL;
   1.127 -//   if (sym != NULL) {
   1.128 -//     entry = this->_artifacts->map_symbol(sym);
   1.129 -//     assert(entry != NULL, "invariant");
   1.130 -//     if (_unique_predicate(entry->id())) {
   1.131 -//       count += write__artifact__symbol__entry__(this->_writer, entry);
   1.132 -//     }
   1.133 -//   }
   1.134 -//   sym = module->version();
   1.135 -//   if (sym != NULL) {
   1.136 -//     entry = this->_artifacts->map_symbol(sym);
   1.137 -//     assert(entry != NULL, "invariant");
   1.138 -//     if (_unique_predicate(entry->id())) {
   1.139 -//       count += write__artifact__symbol__entry__(this->_writer, entry);
   1.140 -//     }
   1.141 -//   }
   1.142 -//   sym = module->location();
   1.143 -//   if (sym != NULL) {
   1.144 -//     entry = this->_artifacts->map_symbol(sym);
   1.145 -//     assert(entry != NULL, "invariant");
   1.146 -//     if (_unique_predicate(entry->id())) {
   1.147 -//       count += write__artifact__symbol__entry__(this->_writer, entry);
   1.148 -//     }
   1.149 -//   }
   1.150 -//   return count;
   1.151 -// }
   1.152 -
   1.153  template <template <typename> class Predicate>
   1.154  int KlassSymbolWriterImpl<Predicate>::class_loader_symbols(CldPtr cld) {
   1.155    assert(cld != NULL, "invariant");
   1.156 @@ -525,100 +436,6 @@
   1.157    do_klasses();
   1.158  }
   1.159  
   1.160 -// XXX
   1.161 -// typedef CompositeFunctor<PkgPtr,
   1.162 -//                          PackageWriter,
   1.163 -//                          ClearArtifact<PkgPtr> > PackageWriterWithClear;
   1.164 -
   1.165 -// typedef CompositeFunctor<PkgPtr,
   1.166 -//                          LeakPackageWriter,
   1.167 -//                          PackageWriter> CompositePackageWriter;
   1.168 -
   1.169 -// typedef CompositeFunctor<PkgPtr,
   1.170 -//                          CompositePackageWriter,
   1.171 -//                          ClearArtifact<PkgPtr> > CompositePackageWriterWithClear;
   1.172 -
   1.173 -// class PackageFieldSelector {
   1.174 -//  public:
   1.175 -//   typedef PkgPtr TypePtr;
   1.176 -//   static TypePtr select(KlassPtr klass) {
   1.177 -//     assert(klass != NULL, "invariant");
   1.178 -//     return ((InstanceKlass*)klass)->package();
   1.179 -//   }
   1.180 -// };
   1.181 -
   1.182 -// typedef KlassToFieldEnvelope<PackageFieldSelector,
   1.183 -//                              PackageWriterWithClear> KlassPackageWriterWithClear;
   1.184 -
   1.185 -// typedef KlassToFieldEnvelope<PackageFieldSelector,
   1.186 -//                              CompositePackageWriterWithClear> KlassCompositePackageWriterWithClear;
   1.187 -
   1.188 -// typedef JfrArtifactCallbackHost<PkgPtr, PackageWriterWithClear> PackageCallback;
   1.189 -// typedef JfrArtifactCallbackHost<PkgPtr, CompositePackageWriterWithClear> CompositePackageCallback;
   1.190 -
   1.191 -// /*
   1.192 -//  * Composite operation
   1.193 -//  *
   1.194 -//  * LeakpPackageWriter ->
   1.195 -//  *   PackageWriter ->
   1.196 -//  *     ClearArtifact<PackageEntry>
   1.197 -//  *
   1.198 -//  */
   1.199 -// void JfrTypeSet::write_package_constants(JfrCheckpointWriter* writer, JfrCheckpointWriter* leakp_writer) {
   1.200 -//   assert(_artifacts->has_klass_entries(), "invariant");
   1.201 -//   ClearArtifact<PkgPtr> clear(_class_unload);
   1.202 -//   PackageWriter pw(writer, _artifacts, _class_unload);
   1.203 -//   if (leakp_writer == NULL) {
   1.204 -//     PackageWriterWithClear pwwc(&pw, &clear);
   1.205 -//     KlassPackageWriterWithClear kpwwc(&pwwc);
   1.206 -//     _artifacts->iterate_klasses(kpwwc);
   1.207 -//     PackageCallback callback(&pwwc);
   1.208 -//     _subsystem_callback = &callback;
   1.209 -//     do_packages();
   1.210 -//     return;
   1.211 -//   }
   1.212 -//   LeakPackageWriter lpw(leakp_writer, _artifacts, _class_unload);
   1.213 -//   CompositePackageWriter cpw(&lpw, &pw);
   1.214 -//   CompositePackageWriterWithClear cpwwc(&cpw, &clear);
   1.215 -//   KlassCompositePackageWriterWithClear ckpw(&cpwwc);
   1.216 -//   _artifacts->iterate_klasses(ckpw);
   1.217 -//   CompositePackageCallback callback(&cpwwc);
   1.218 -//   _subsystem_callback = &callback;
   1.219 -//   do_packages();
   1.220 -// }
   1.221 -
   1.222 -// typedef CompositeFunctor<ModPtr,
   1.223 -//                          ModuleWriter,
   1.224 -//                          ClearArtifact<ModPtr> > ModuleWriterWithClear;
   1.225 -
   1.226 -// typedef CompositeFunctor<ModPtr,
   1.227 -//                          LeakModuleWriter,
   1.228 -//                          ModuleWriter> CompositeModuleWriter;
   1.229 -
   1.230 -// typedef CompositeFunctor<ModPtr,
   1.231 -//                          CompositeModuleWriter,
   1.232 -//                          ClearArtifact<ModPtr> > CompositeModuleWriterWithClear;
   1.233 -
   1.234 -// typedef JfrArtifactCallbackHost<ModPtr, ModuleWriterWithClear> ModuleCallback;
   1.235 -// typedef JfrArtifactCallbackHost<ModPtr, CompositeModuleWriterWithClear> CompositeModuleCallback;
   1.236 -
   1.237 -// XXX
   1.238 -// class ModuleFieldSelector {
   1.239 -//  public:
   1.240 -//   typedef ModPtr TypePtr;
   1.241 -//   static TypePtr select(KlassPtr klass) {
   1.242 -//     assert(klass != NULL, "invariant");
   1.243 -//     PkgPtr pkg = klass->package();
   1.244 -//     return pkg != NULL ? pkg->module() : NULL;
   1.245 -//   }
   1.246 -// };
   1.247 -
   1.248 -// typedef KlassToFieldEnvelope<ModuleFieldSelector,
   1.249 -//                              ModuleWriterWithClear> KlassModuleWriterWithClear;
   1.250 -
   1.251 -// typedef KlassToFieldEnvelope<ModuleFieldSelector,
   1.252 -//                              CompositeModuleWriterWithClear> KlassCompositeModuleWriterWithClear;
   1.253 -
   1.254  typedef CompositeFunctor<CldPtr, CldWriter, ClearArtifact<CldPtr> > CldWriterWithClear;
   1.255  typedef CompositeFunctor<CldPtr, LeakCldWriter, CldWriter> CompositeCldWriter;
   1.256  typedef CompositeFunctor<CldPtr, CompositeCldWriter, ClearArtifact<CldPtr> > CompositeCldWriterWithClear;
   1.257 @@ -791,30 +608,6 @@
   1.258    ClassLoaderDataGraph::classes_do(&do_klass);
   1.259  }
   1.260  
   1.261 -// XXX
   1.262 -// void JfrTypeSet::do_unloaded_package(PackageEntry* entry) {
   1.263 -//   assert(entry != NULL, "invariant");
   1.264 -//   assert(_subsystem_callback != NULL, "invariant");
   1.265 -//   if (ANY_USED_THIS_EPOCH(entry)) { // includes leakp subset
   1.266 -//     _subsystem_callback->do_artifact(entry);
   1.267 -//   }
   1.268 -// }
   1.269 -
   1.270 -// void JfrTypeSet::do_package(PackageEntry* entry) {
   1.271 -//   assert(_subsystem_callback != NULL, "invariant");
   1.272 -//   if (ANY_USED_PREV_EPOCH(entry)) { // includes leakp subset
   1.273 -//     _subsystem_callback->do_artifact(entry);
   1.274 -//   }
   1.275 -// }
   1.276 -
   1.277 -// void JfrTypeSet::do_packages() {
   1.278 -//   if (_class_unload) {
   1.279 -//     ClassLoaderDataGraph::packages_unloading_do(&do_unloaded_package);
   1.280 -//     return;
   1.281 -//   }
   1.282 -//   ClassLoaderDataGraph::packages_do(&do_package);
   1.283 -// }
   1.284 -
   1.285  void JfrTypeSet::do_unloaded_class_loader_data(ClassLoaderData* cld) {
   1.286    assert(_subsystem_callback != NULL, "invariant");
   1.287    if (ANY_USED_THIS_EPOCH(cld)) { // includes leakp subset
   1.288 @@ -892,7 +685,6 @@
   1.289    // might tag an artifact to be written in a subsequent step
   1.290    write_klass_constants(writer, leakp_writer);
   1.291    if (_artifacts->has_klass_entries()) {
   1.292 -// XXX    write_package_constants(writer, leakp_writer);
   1.293      write_class_loader_constants(writer, leakp_writer);
   1.294      write_method_constants(writer, leakp_writer);
   1.295      write_symbol_constants(writer, leakp_writer);

mercurial