228 void ObjectSampleCheckpoint::write(const EdgeStore* edge_store, bool emit_all, Thread* thread) { |
228 void ObjectSampleCheckpoint::write(const EdgeStore* edge_store, bool emit_all, Thread* thread) { |
229 assert(edge_store != NULL, "invariant"); |
229 assert(edge_store != NULL, "invariant"); |
230 assert(thread != NULL, "invariant"); |
230 assert(thread != NULL, "invariant"); |
231 static bool types_registered = false; |
231 static bool types_registered = false; |
232 if (!types_registered) { |
232 if (!types_registered) { |
233 JfrSerializer::register_serializer(TYPE_OLDOBJECTROOTSYSTEM, false, true, new RootSystemType()); |
233 JfrSerializer::register_serializer(TYPE_OLDOBJECTROOTSYSTEM, true, new RootSystemType()); |
234 JfrSerializer::register_serializer(TYPE_OLDOBJECTROOTTYPE, false, true, new RootType()); |
234 JfrSerializer::register_serializer(TYPE_OLDOBJECTROOTTYPE, true, new RootType()); |
235 types_registered = true; |
235 types_registered = true; |
236 } |
236 } |
237 const ObjectSampler* const object_sampler = LeakProfiler::object_sampler(); |
237 const ObjectSampler* const object_sampler = LeakProfiler::object_sampler(); |
238 assert(object_sampler != NULL, "invariant"); |
238 assert(object_sampler != NULL, "invariant"); |
239 const jlong last_sweep = emit_all ? max_jlong : object_sampler->last_sweep().value(); |
239 const jlong last_sweep = emit_all ? max_jlong : object_sampler->last_sweep().value(); |