Mercurial > hg > openjdk > jdk8u > hotspot
changeset 9168:02a4c08a8777
8216064: -XX:StartFlightRecording:settings= doesn't work properly
Reviewed-by: mgronlun
author | egahlin |
---|---|
date | Fri, 27 Sep 2019 10:27:29 +0800 |
parents | 3dd83d893bfc |
children | 1258121876f8 |
files | src/share/vm/jfr/dcmd/jfrDcmds.cpp src/share/vm/jfr/jni/jfrJavaCall.cpp src/share/vm/jfr/jni/jfrJavaSupport.cpp |
diffstat | 3 files changed, 11 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/jfr/dcmd/jfrDcmds.cpp Fri Sep 27 10:09:50 2019 +0800 +++ b/src/share/vm/jfr/dcmd/jfrDcmds.cpp Fri Sep 27 10:27:29 2019 +0800 @@ -434,7 +434,13 @@ jobjectArray settings = NULL; if (_settings.is_set()) { - const int length = _settings.value()->array()->length(); + int length = _settings.value()->array()->length(); + if (length == 1) { + const char* c_str = _settings.value()->array()->at(0); + if (strcmp(c_str, "none") == 0) { + length = 0; + } + } settings = JfrJavaSupport::new_string_array(length, CHECK); assert(settings != NULL, "invariant"); for (int i = 0; i < length; ++i) {
--- a/src/share/vm/jfr/jni/jfrJavaCall.cpp Fri Sep 27 10:09:50 2019 +0800 +++ b/src/share/vm/jfr/jni/jfrJavaCall.cpp Fri Sep 27 10:27:29 2019 +0800 @@ -184,7 +184,7 @@ } } -JfrJavaArguments::JfrJavaArguments(JavaValue* result) : _result(result), _klass(NULL), _name(NULL), _signature(NULL), _array_length(0) { +JfrJavaArguments::JfrJavaArguments(JavaValue* result) : _result(result), _klass(NULL), _name(NULL), _signature(NULL), _array_length(-1) { assert(result != NULL, "invariant"); } @@ -193,7 +193,7 @@ _klass(NULL), _name(NULL), _signature(NULL), - _array_length(0) { + _array_length(-1) { assert(result != NULL, "invariant"); if (klass_name != NULL) { set_klass(klass_name, CHECK); @@ -210,7 +210,7 @@ _klass(NULL), _name(NULL), _signature(NULL), - _array_length(0) { + _array_length(-1) { assert(result != NULL, "invariant"); if (klass != NULL) { set_klass(klass);
--- a/src/share/vm/jfr/jni/jfrJavaSupport.cpp Fri Sep 27 10:09:50 2019 +0800 +++ b/src/share/vm/jfr/jni/jfrJavaSupport.cpp Fri Sep 27 10:27:29 2019 +0800 @@ -166,7 +166,7 @@ const int array_length = args->array_length(); - if (array_length > 0) { + if (array_length >= 0) { array_construction(args, result, klass, array_length, CHECK); } else { object_construction(args, result, klass, THREAD);