提交 679403fa 编写于 作者: F fparain

7131346: Parsing of boolean arguments to diagnostic commands is broken

Reviewed-by: dholmes, dcubed
上级 657aa7f5
/*
* Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 2011, 2012 Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
......@@ -59,12 +59,13 @@ template <> void DCmdArgument<jlong>::destroy_value() { }
template <> void DCmdArgument<bool>::parse_value(const char* str,
size_t len, TRAPS) {
// len is the length of the current token starting at str
if (len == 0) {
set_value(true);
} else {
if (strcasecmp(str, "true") == 0) {
if (len == strlen("true") && strncasecmp(str, "true", len) == 0) {
set_value(true);
} else if (strcasecmp(str, "false") == 0) {
} else if (len == strlen("false") && strncasecmp(str, "false", len) == 0) {
set_value(false);
} else {
THROW_MSG(vmSymbols::java_lang_IllegalArgumentException(),
......
......@@ -130,6 +130,9 @@ inline jdouble jdouble_cast(jlong x) { return *(jdouble*)&x; }
//----------------------------------------------------------------------------------------------------
// Non-standard stdlib-like stuff:
inline int strcasecmp(const char *s1, const char *s2) { return _stricmp(s1,s2); }
inline int strncasecmp(const char *s1, const char *s2, size_t n) {
return _strnicmp(s1,s2,n);
}
//----------------------------------------------------------------------------------------------------
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册