提交 0edcfd0b 编写于 作者: A asaha

Merge

......@@ -904,6 +904,7 @@ e4525db272634b980738003eff99ac1588bb79d3 jdk8u111-b05
019b22dd8128840ecdcd1bfebcf4447e28e45068 jdk8u111-b06
3f337aaf090769653ee0a746fbe661d09055a883 jdk8u111-b07
e180e364a40364a059a20c74b97ab4e928e2b676 jdk8u111-b08
c48b303692bb86c42e928da6dec815e901a24c5b jdk8u111-b09
b09a69142dd3bf78ca66bb0c99046ca7cccbdda9 jdk8u112-b00
cf1faa9100dd8c8df6e1a604aaf613d037f51ebf jdk8u112-b01
f22b5be95347c669a1463d9e05ec3bf11420208e jdk8u112-b02
......
/*
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2016, 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
......@@ -2872,7 +2872,18 @@ ATTRIBUTE_PRINTF(3, 0)
int jio_vsnprintf(char *str, size_t count, const char *fmt, va_list args) {
// see bug 4399518, 4417214
if ((intptr_t)count <= 0) return -1;
return vsnprintf(str, count, fmt, args);
int result = vsnprintf(str, count, fmt, args);
// Note: on truncation vsnprintf(3) on Unix returns number of
// characters which would have been written had the buffer been large
// enough; on Windows, it returns -1. We handle both cases here and
// always return -1, and perform null termination.
if ((result > 0 && (size_t)result >= count) || result == -1) {
str[count - 1] = '\0';
result = -1;
}
return result;
}
ATTRIBUTE_PRINTF(3, 0)
......
......@@ -1881,8 +1881,6 @@ const char* Deoptimization::format_trap_state(char* buf, size_t buflen,
trap_reason_name(reason),
recomp_flag ? " recompiled" : "");
}
if (len >= buflen)
buf[buflen-1] = '\0';
return buf;
}
......@@ -1952,8 +1950,6 @@ const char* Deoptimization::format_trap_request(char* buf, size_t buflen,
len = jio_snprintf(buf, buflen, "reason='%s' action='%s' index='%d'",
reason, action, unloaded_class_index);
}
if (len >= buflen)
buf[buflen-1] = '\0';
return buf;
}
......
/*
* Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1997, 2016, 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
......@@ -773,25 +773,36 @@ int JDK_Version::compare(const JDK_Version& other) const {
}
void JDK_Version::to_string(char* buffer, size_t buflen) const {
assert(buffer && buflen > 0, "call with useful buffer");
size_t index = 0;
if (!is_valid()) {
jio_snprintf(buffer, buflen, "%s", "(uninitialized)");
} else if (is_partially_initialized()) {
jio_snprintf(buffer, buflen, "%s", "(uninitialized) pre-1.6.0");
} else {
index += jio_snprintf(
int rc = jio_snprintf(
&buffer[index], buflen - index, "%d.%d", _major, _minor);
if (rc == -1) return;
index += rc;
if (_micro > 0) {
index += jio_snprintf(&buffer[index], buflen - index, ".%d", _micro);
rc = jio_snprintf(&buffer[index], buflen - index, ".%d", _micro);
if (rc == -1) return;
index += rc;
}
if (_update > 0) {
index += jio_snprintf(&buffer[index], buflen - index, "_%02d", _update);
rc = jio_snprintf(&buffer[index], buflen - index, "_%02d", _update);
if (rc == -1) return;
index += rc;
}
if (_special > 0) {
index += jio_snprintf(&buffer[index], buflen - index, "%c", _special);
rc = jio_snprintf(&buffer[index], buflen - index, "%c", _special);
if (rc == -1) return;
index += rc;
}
if (_build > 0) {
index += jio_snprintf(&buffer[index], buflen - index, "-b%02d", _build);
rc = jio_snprintf(&buffer[index], buflen - index, "-b%02d", _build);
if (rc == -1) return;
index += rc;
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册