RFR: 8080775: Better argument formatting for assert() and friends
David Lindholm
david.lindholm at oracle.com
Mon Sep 28 15:37:15 UTC 2015
Kim and Per,
Thank you! I have made fixes for all your comments, the latest webrev is
available here:
http://cr.openjdk.java.net/~david/JDK-8080775/webrev.03/
Kim, I have left the casts in the code, as you say this should be fixed
in another change.
Thanks,
David
On 2015-09-28 16:48, Kim Barrett wrote:
> This is the last of my comments on:
> http://cr.openjdk.java.net/~david/JDK-8080775/webrev.00/
>
> A few more minor formatting nits, and a couple of things that should
> probably be left for later.
>
> ------------------------------------------------------------------------------
> src/share/vm/oops/klassVtable.cpp
> 1464 fatal("klass %s: klass object too short (vtable extends beyond "
> 1465 "end)", _klass->internal_name());
>
> Remove line break in format string.
>
> ------------------------------------------------------------------------------
> src/share/vm/oops/method.cpp
> 249 { ResourceMark rm;
> 250 assert(is_native() && bcp == code_base() || contains(bcp) || is_error_reported(),
> 251 "bcp doesn't belong to this method: bcp: " INTPTR_FORMAT ", method: %s", bcp, name_and_sig_as_C_string());
> 252 }
>
> [Pre-existing]
> The assert isn't properly indented within the nested block. Note that
> I think the ResourceMark is required, due to
> name_and_sig_as_C_String(). [Recall that failed assert can still
> return, though I think only in non-PRODUCT mode.]
>
> ------------------------------------------------------------------------------
> src/share/vm/oops/method.cpp
> 282 assert((is_native() && bci == 0) || (!is_native() && 0 <= bci && bci < code_size()), "illegal bci: %d", bci);
>
> [Pre-existing]
> Extra space before "||".
>
> ------------------------------------------------------------------------------
> src/share/vm/oops/method.cpp
> 575 if (class_access_flags.is_interface()) {
> 576 assert(is_nonv == is_static(), "is_nonv=%s", name_and_sig_as_C_string());
> 577 }
>
> [Pre-existing]
> Indentation of assert statement should be 2, not 4.
>
> ------------------------------------------------------------------------------
> src/share/vm/oops/oop.cpp
> 126 guarantee(obj->is_oop_or_null(), "invalid oop: " INTPTR_FORMAT, p2i((oopDesc*) obj));
>
> [Pre-existing]
> I don't think the cast is needed here.
>
> [Maybe this sort of thing should be left to separate cleanup of p2i
> usage. See below.]
>
> ------------------------------------------------------------------------------
> src/share/vm/oops/oop.inline.hpp
> 192 assert(check_obj_alignment(result), "address not aligned: " INTPTR_FORMAT, p2i((void*) result));
>
> [Pre-existing]
> I don't think the cast is needed here.
>
> [Maybe this sort of thing should be left to a separate cleanup of p2i
> usage. With two in a row now, I'm inclined to suggest that.]
>
> ------------------------------------------------------------------------------
> src/share/vm/opto/castnode.cpp
> 132 fatal("unexpected comparison %s", ss.as_string());
>
> [Pre-existing. Any change related to this should be separate from the
> assert formatting arguments change.]
>
> [Note that this change removed err_msg_res.]
>
> There's no obvious associated ResourceMark. But maybe there should
> be, since ss.as_string() performs resource allocation.
>
> Recall that fatal() and other related macros can return under some
> circumstances. (Though I think only non-PRODUCT.)
>
> ------------------------------------------------------------------------------
> src/share/vm/opto/graphKit.hpp
> 356 assert(value->bottom_type()->basic_type() == T_INT,
> 357 "wrong type: %s", type2name(value->bottom_type()->basic_type()));
> ...
> 361 assert(value->bottom_type()->basic_type() == T_LONG,
> 362 "wrong type: %s", type2name(value->bottom_type()->basic_type()));
>
> Indentation of message.
>
> ------------------------------------------------------------------------------
>
More information about the hotspot-dev
mailing list