src/share/vm/gc_implementation/g1/g1GCPhaseTimes.cpp

changeset 9478
f3108e56b502
parent 9327
f96fcd9e1e1b
child 9572
624a0741915c
child 9858
b985cbb00e68
equal deleted inserted replaced
9477:bbd1da3f538f 9478:f3108e56b502
39 char _buffer[BUFFER_LEN]; 39 char _buffer[BUFFER_LEN];
40 int _indent_level; 40 int _indent_level;
41 int _cur; 41 int _cur;
42 42
43 void vappend(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0) { 43 void vappend(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0) {
44 int res = vsnprintf(&_buffer[_cur], BUFFER_LEN - _cur, format, ap); 44 int res = os::vsnprintf(&_buffer[_cur], BUFFER_LEN - _cur, format, ap);
45 if (res != -1) { 45 if (res > BUFFER_LEN) {
46 _cur += res;
47 } else {
48 DEBUG_ONLY(warning("buffer too small in LineBuffer");) 46 DEBUG_ONLY(warning("buffer too small in LineBuffer");)
49 _buffer[BUFFER_LEN -1] = 0; 47 _buffer[BUFFER_LEN -1] = 0;
50 _cur = BUFFER_LEN; // vsnprintf above should not add to _buffer if we are called again 48 _cur = BUFFER_LEN; // vsnprintf above should not add to _buffer if we are called again
49 } else if (res != -1) {
50 _cur += res;
51 } 51 }
52 } 52 }
53 53
54 public: 54 public:
55 explicit LineBuffer(int indent_level): _indent_level(indent_level), _cur(0) { 55 explicit LineBuffer(int indent_level): _indent_level(indent_level), _cur(0) {

mercurial