--- old/src/share/vm/ci/ciMethodData.hpp 2013-10-17 18:54:49.922883413 +0200 +++ new/src/share/vm/ci/ciMethodData.hpp 2013-10-17 18:54:49.518419908 +0200 @@ -100,6 +100,10 @@ return valid_ciklass(type(i)); } + bool maybe_null(int i) const { + return was_null_seen(type(i)); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif @@ -113,6 +117,10 @@ return valid_ciklass(type()); } + bool maybe_null() const { + return was_null_seen(type()); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif @@ -143,7 +151,7 @@ assert(has_arguments(), "no arg type profiling data"); return args()->valid_type(i); } - + intptr_t return_type() const { assert(has_return(), "no ret type profiling data"); return ret()->type(); @@ -154,6 +162,14 @@ return ret()->valid_type(); } + bool argument_maybe_null(int i) const { + return args()->maybe_null(i); + } + + bool return_maybe_null() const { + return ret()->maybe_null(); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif @@ -260,6 +276,14 @@ return ret()->valid_type(); } + bool argument_maybe_null(int i) const { + return args()->maybe_null(i); + } + + bool return_maybe_null() const { + return ret()->maybe_null(); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif @@ -305,6 +329,10 @@ return parameters()->valid_type(i); } + bool parameter_maybe_null(int i) const { + return parameters()->maybe_null(i); + } + #ifndef PRODUCT void print_data_on(outputStream* st) const; #endif