On Mon, 23 Aug 2021 23:26:14 GMT, Serguei Spitsyn <sspit...@openjdk.org> wrote:
>> Lin Zang has updated the pull request with a new target base due to a merge >> or a rebase. The incremental webrev excludes the unrelated changes brought >> in by the merge/rebase. The pull request contains four additional commits >> since the last revision: >> >> - Merge branch 'master' into hprof >> - fix write size issue >> - Merge branch 'master' into hprof >> - 8269685: Optimize HeapHprofBinWriter implementation > > Hi Lin, > > You did not answer my question about empty methods in the > AbstractHeapGraphWriter.java. > It seems the following methods have to be abstract instead of being empty: > > + protected int calculateGlobalJNIHandlesDumpRecordSize() { > + return 0; > + } > + > + protected int calculateJavaThreadsDumpRecordSize() { > + return 0; > + } > + > + protected int calculateOopDumpRecordSize(Oop oop) throws IOException { > + return 0; > + } > . . . > // object field writers > protected void writeReferenceField(Oop oop, OopField field) > throws IOException { > } > protected void writeByteField(Oop oop, ByteField field) > throws IOException { > } > protected void writeCharField(Oop oop, CharField field) > throws IOException { > } > protected void writeBooleanField(Oop oop, BooleanField field) > throws IOException { > } > protected void writeShortField(Oop oop, ShortField field) > throws IOException { > } > protected void writeIntField(Oop oop, IntField field) > throws IOException { > } > protected void writeLongField(Oop oop, LongField field) > throws IOException { > } > protected void writeFloatField(Oop oop, FloatField field) > throws IOException { > } > protected void writeDoubleField(Oop oop, DoubleField field) > throws IOException { > } > protected void writeObjectFooter(Oop oop) throws IOException { > } > protected void writeHeapFooter() throws IOException { > } > protected void writeHeapRecordPrologue() throws IOException { > } > + protected void writeHeapRecordPrologue(int size) throws IOException { > + } > + > protected void writeHeapRecordEpilogue() throws IOException { > } Hi Serguei (@sspitsyn), So sorry that I missed your comments, it is strange that your review didn't show on github in this PR. I make these methods empty in AbstractHeapGraphWriter rather than abstract so that there is no need to add these empty code in HeapGXLWriter, which is a subclass of AbstractHeapGraphWriter. I think this may help make the code change clean. What do you think? BRs, Lin ------------- PR: https://git.openjdk.java.net/jdk/pull/4666