< prev index next >

src/share/vm/logging/logPrefix.hpp

Print this page
rev 10661 : [mq]: 8145934

@@ -92,11 +92,15 @@
 #define LOG_PREFIX(fn, ...) \
 template <> struct LogPrefix<__VA_ARGS__> { \
   static size_t prefix(char* buf, size_t len) { \
     DEBUG_ONLY(buf[0] = '\0';) \
     size_t ret = fn(buf, len); \
-    assert(ret == strlen(buf), "Length mismatch ret (" SIZE_FORMAT ") != buf length (" SIZE_FORMAT ")", ret, strlen(buf)); \
+    /* Either prefix did fit (strlen(buf) == ret && ret < len) */ \
+    /* or the prefix didn't fit in buffer (ret > len && strlen(buf) < len) */ \
+    assert(strlen(buf) < len, "Buffer overrun by prefix function."); \
+    assert(strlen(buf) == ret || ret >= len, "Prefix function should return length of prefix written," \
+           " or the intended length of prefix if the buffer was too small."); \
     return ret; \
   } \
 };
 LOG_PREFIX_LIST
 #undef LOG_PREFIX
< prev index next >