src/hotspot/share/utilities/ostream.cpp
changeset 58195 a82fe7a88ce4
parent 55236 c87e52dbdca0
child 58679 9c3209ff7550
equal deleted inserted replaced
58194:6a05019acb67 58195:a82fe7a88ce4
    97     // trivial copy-through format string
    97     // trivial copy-through format string
    98     result = va_arg(ap, const char*);
    98     result = va_arg(ap, const char*);
    99     result_len = strlen(result);
    99     result_len = strlen(result);
   100     if (add_cr && result_len >= buflen)  result_len = buflen-1;  // truncate
   100     if (add_cr && result_len >= buflen)  result_len = buflen-1;  // truncate
   101   } else {
   101   } else {
   102     int written = os::vsnprintf(buffer, buflen, format, ap);
   102     int required_len = os::vsnprintf(buffer, buflen, format, ap);
   103     assert(written >= 0, "vsnprintf encoding error");
   103     assert(required_len >= 0, "vsnprintf encoding error");
   104     result = buffer;
   104     result = buffer;
   105     if ((size_t)written < buflen) {
   105     if ((size_t)required_len < buflen) {
   106       result_len = written;
   106       result_len = required_len;
   107     } else {
   107     } else {
   108       DEBUG_ONLY(warning("increase O_BUFLEN in ostream.hpp -- output truncated");)
   108       DEBUG_ONLY(warning("outputStream::do_vsnprintf output truncated -- buffer length is %d bytes but %d bytes are needed.",
       
   109                          add_cr ? (int)buflen + 1 : (int)buflen, add_cr ? required_len + 2 : required_len + 1);)
   109       result_len = buflen - 1;
   110       result_len = buflen - 1;
   110     }
   111     }
   111   }
   112   }
   112   if (add_cr) {
   113   if (add_cr) {
   113     if (result != buffer) {
   114     if (result != buffer) {