diff -r 2c3cc4b01880 -r c16ac7a2eba4 src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp --- a/src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp Wed Oct 30 16:14:56 2019 +0100 +++ b/src/hotspot/share/jfr/recorder/stacktrace/jfrStackTraceRepository.hpp Wed Oct 30 19:43:52 2019 +0100 @@ -40,7 +40,7 @@ friend class ObjectSampleCheckpoint; friend class ObjectSampler; friend class StackTraceBlobInstaller; - friend class WriteStackTraceRepository; + friend class StackTraceRepository; private: static const u4 TABLE_SIZE = 2053; @@ -51,19 +51,18 @@ JfrStackTraceRepository(); static JfrStackTraceRepository& instance(); static JfrStackTraceRepository* create(); + static void destroy(); bool initialize(); - static void destroy(); - size_t write_impl(JfrChunkWriter& cw, bool clear); - static void write_metadata(JfrCheckpointWriter& cpw); - traceid write(JfrCheckpointWriter& cpw, traceid id, unsigned int hash); + bool is_modified() const; size_t write(JfrChunkWriter& cw, bool clear); size_t clear(); + const JfrStackTrace* lookup(unsigned int hash, traceid id) const; + traceid add_trace(const JfrStackTrace& stacktrace); static traceid add(const JfrStackTrace& stacktrace); traceid record_for(JavaThread* thread, int skip, JfrStackFrame* frames, u4 max_frames); - const JfrStackTrace* lookup(unsigned int hash, traceid id) const; public: static traceid record(Thread* thread, int skip = 0);