hotspot/src/share/vm/logging/logPrefix.hpp
changeset 38263 a7488329ad27
parent 38128 22391eb0c22d
child 39703 66722c5bc87a
equal deleted inserted replaced
38262:8e814475a28a 38263:a7488329ad27
    94 };
    94 };
    95 
    95 
    96 #define LOG_PREFIX(fn, ...) \
    96 #define LOG_PREFIX(fn, ...) \
    97 template <> struct LogPrefix<__VA_ARGS__> { \
    97 template <> struct LogPrefix<__VA_ARGS__> { \
    98   static size_t prefix(char* buf, size_t len) { \
    98   static size_t prefix(char* buf, size_t len) { \
    99     DEBUG_ONLY(buf[0] = '\0';) \
       
   100     size_t ret = fn(buf, len); \
    99     size_t ret = fn(buf, len); \
   101     assert(ret == strlen(buf), "Length mismatch ret (" SIZE_FORMAT ") != buf length (" SIZE_FORMAT ")", ret, strlen(buf)); \
   100     /* Either prefix did fit (strlen(buf) == ret && ret < len) */ \
       
   101     /* or the prefix didn't fit in buffer (ret > len && strlen(buf) < len) */ \
       
   102     assert(ret == 0 || strlen(buf) < len, \
       
   103            "Buffer overrun by prefix function."); \
       
   104     assert(ret == 0 || strlen(buf) == ret || ret >= len, \
       
   105            "Prefix function should return length of prefix written," \
       
   106            " or the intended length of prefix if the buffer was too small."); \
   102     return ret; \
   107     return ret; \
   103   } \
   108   } \
   104 };
   109 };
   105 LOG_PREFIX_LIST
   110 LOG_PREFIX_LIST
   106 #undef LOG_PREFIX
   111 #undef LOG_PREFIX