RFR: 8221541: clean up functions in CompilerOracle - was : RE: CompilerOracle::append_comment_to_file and CompilerOracle::append_exclude_to_file - missing fclose calls ?
Baesken, Matthias
matthias.baesken at sap.com
Wed Mar 27 09:29:44 UTC 2019
Hi Thomas, good point .
I removed the 2 functions .
Btw. I checked them (using nm ) in the product libjvm.so and they showed up in the binary .
So it might help also to get the binary a little bit smaller …
Please review !
Bug/webrev :
https://bugs.openjdk.java.net/browse/JDK-8221541
http://cr.openjdk.java.net/~mbaesken/webrevs/8221541.0/
Thanks, Matthias
From: Thomas Stüfe <thomas.stuefe at gmail.com>
Sent: Dienstag, 26. März 2019 20:40
To: Baesken, Matthias <matthias.baesken at sap.com>
Cc: hotspot-dev at openjdk.java.net
Subject: Re: CompilerOracle::append_comment_to_file and CompilerOracle::append_exclude_to_file - missing fclose calls ?
Hi Matthias,
On Tue, Mar 26, 2019 at 4:17 PM Baesken, Matthias <matthias.baesken at sap.com<mailto:matthias.baesken at sap.com>> wrote:
Hello, it seems that the fopen calls in CompilerOracle::append_comment_to_file and
CompilerOracle::append_exclude_to_file do not have a corresponding fclose.
Or do I miss something ?
No, you are right, this is a bug. However, I think those functions are nowhere used, so maybe they could be removed completely.
Cheers, Thomas
We could also add a "true" for the second argument of the fileStream constructor calls ( fileStream(FILE* file, bool need_close = false) )
to get the closing.
coding :
------------
jdk/src/hotspot/share/compiler/compilerOracle.cpp
741void CompilerOracle::append_comment_to_file(const char* message) {
742 assert(has_command_file(), "command file must be specified");
743 fileStream stream(fopen(cc_file(), "at"));
744 stream.print("# ");
745 for (int index = 0; message[index] != '\0'; index++) {
746 stream.put(message[index]);
747 if (message[index] == '\n') stream.print("# ");
748 }
749 stream.cr<http://stream.cr>();
750}
751
752void CompilerOracle::append_exclude_to_file(const methodHandle& method) {
753 assert(has_command_file(), "command file must be specified");
754 fileStream stream(fopen(cc_file(), "at"));
755 stream.print("exclude ");
756 method->method_holder()->name()->print_symbol_on(&stream);
757 stream.print(".");
758 method->name()->print_symbol_on(&stream);
759 method->signature()->print_symbol_on(&stream);
760 stream.cr<http://stream.cr>();
761 stream.cr<http://stream.cr>();
762}
Best regards, Matthias
More information about the hotspot-dev
mailing list