src/hotspot/share/jfr/recorder/checkpoint/types/jfrTypeSet.cpp
branchJEP-349-branch
changeset 58049 10ecdb5d3574
parent 57992 f2f7cb0f1a0f
child 58157 9dca61a7df19
equal deleted inserted replaced
58020:f082177c5023 58049:10ecdb5d3574
    89 
    89 
    90 static traceid mark_symbol(Symbol* symbol, bool leakp) {
    90 static traceid mark_symbol(Symbol* symbol, bool leakp) {
    91   return symbol != NULL ? create_symbol_id(_artifacts->mark(symbol, leakp)) : 0;
    91   return symbol != NULL ? create_symbol_id(_artifacts->mark(symbol, leakp)) : 0;
    92 }
    92 }
    93 
    93 
       
    94 static traceid get_bootstrap_name(bool leakp) {
       
    95   return create_symbol_id(_artifacts->bootstrap_name(leakp));
       
    96 }
       
    97 
    94 template <typename T>
    98 template <typename T>
    95 static traceid artifact_id(const T* ptr) {
    99 static traceid artifact_id(const T* ptr) {
    96   assert(ptr != NULL, "invariant");
   100   assert(ptr != NULL, "invariant");
    97   return TRACE_ID(ptr);
   101   return TRACE_ID(ptr);
    98 }
   102 }
   490   const Klass* class_loader_klass = cld->class_loader_klass();
   494   const Klass* class_loader_klass = cld->class_loader_klass();
   491   if (class_loader_klass == NULL) {
   495   if (class_loader_klass == NULL) {
   492     // (primordial) boot class loader
   496     // (primordial) boot class loader
   493     writer->write(artifact_id(cld)); // class loader instance id
   497     writer->write(artifact_id(cld)); // class loader instance id
   494     writer->write((traceid)0);  // class loader type id (absence of)
   498     writer->write((traceid)0);  // class loader type id (absence of)
   495     writer->write(create_symbol_id(1)); // 1 maps to synthetic name -> "bootstrap"
   499     writer->write(get_bootstrap_name(leakp)); // maps to synthetic name -> "bootstrap"
   496   } else {
   500   } else {
   497     writer->write(artifact_id(cld)); // class loader instance id
   501     writer->write(artifact_id(cld)); // class loader instance id
   498     writer->write(artifact_id(class_loader_klass)); // class loader type id
   502     writer->write(artifact_id(class_loader_klass)); // class loader type id
   499     writer->write(mark_symbol(cld->name(), leakp)); // class loader instance name
   503     writer->write(mark_symbol(cld->name(), leakp)); // class loader instance name
   500   }
   504   }