RFR: JDK-8013736: [launcher] cleanup code for correctness (original) (raw)

Kumar Srinivasan kumar.x.srinivasan at oracle.com
Thu May 2 17:45:25 UTC 2013


On 5/2/2013 10:17 AM, Martin Buchholz wrote:

This is global fix creep, but ...

:(

these macros are also found in the hotspot sources. I would rewrite all the macros in the jdk to adopt the blessed style do { ... } while(0) and remove all comments in the jdk of the form /* next token must be ; */ If you want a macro that does nothing at all, you should define it do {} while (0) instead of defining it to the empty string. I am not following, could you be more explicit on how this applies to

-#define NULL_CHECK0(e) if ((e) == 0) {
+#define NULL_CHECK_RV(e, rv) if ((e) == 0) {
JLI_ReportErrorMessage(JNI_ERROR); \

}

-#define NULL_CHECK(e) if ((e) == 0) { \

+#define NULL_CHECK(e) NULL_CHECK_RV(e, ) +

I would also be inclined to change == 0 to == NULL

Yes will take care of this, as well as Alan suggestion added a check for malloc return.

This seems like another occasion to use the weird

do { ... } while(0) trick to make the macro behave more like a statement. I might obfuscate the macro parameters to make collisions less likely, e.g. e => NCRVe

You want me to rename the macro parameter e to N_C_RV_e ? or something else say ncrve to avoid collision ?

Kumar

On Wed, May 1, 2013 at 12:33 PM, Kumar Srinivasan <kumar.x.srinivasan at oracle.com_ _<mailto:kumar.x.srinivasan at oracle.com>> wrote: Hi, Please review simple fixes for code correctness in the launcher. http://cr.openjdk.java.net/~ksrini/8013736/webrev.0/ <http://cr.openjdk.java.net/%7Eksrini/8013736/webrev.0/> Thanks Kumar



More information about the core-libs-dev mailing list