equal
deleted
inserted
replaced
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 } |