hotspot/src/share/vm/logging/log.hpp
changeset 37247 bdbfe42632cb
parent 37245 70413a0266d4
child 37254 8631304f255c
--- a/hotspot/src/share/vm/logging/log.hpp	Mon Apr 04 13:36:27 2016 +0200
+++ b/hotspot/src/share/vm/logging/log.hpp	Mon Apr 04 15:05:52 2016 +0200
@@ -86,26 +86,6 @@
 //
 #define Log(...)  LogImpl<LOG_TAGS(__VA_ARGS__)>
 
-template <LogTagType T0, LogTagType T1, LogTagType T2, LogTagType T3, LogTagType T4, LogTagType GuardTag>
-class LogImpl;
-
-// Non-template helper class for implementing write-slowpath in cpp
-class LogWriteHelper : AllStatic {
- private:
-
-  template <LogTagType T0, LogTagType T1, LogTagType T2, LogTagType T3, LogTagType T4, LogTagType GuardTag>
-  friend class LogImpl;
-
-  ATTRIBUTE_PRINTF(6, 0)
-  static void write_large(LogTagSet& lts,
-                          LogLevelType level,
-                          const char* prefix,
-                          size_t prefix_len,
-                          size_t msg_len,
-                          const char* fmt,
-                          va_list args);
-};
-
 //
 // Log class that embeds both log tags and a log level.
 //
@@ -150,7 +130,7 @@
     va_start(args, fmt);
     vwrite(level, fmt, args);
     va_end(args);
-  };
+  }
 
   template <LogLevelType Level>
   ATTRIBUTE_PRINTF(1, 2)
@@ -159,25 +139,11 @@
     va_start(args, fmt);
     vwrite(Level, fmt, args);
     va_end(args);
-  };
+  }
 
   ATTRIBUTE_PRINTF(2, 0)
   static void vwrite(LogLevelType level, const char* fmt, va_list args) {
-    char buf[LogBufferSize];
-    va_list saved_args;         // For re-format on buf overflow.
-    va_copy(saved_args, args);
-    size_t prefix_len = LogPrefix<T0, T1, T2, T3, T4>::prefix(buf, sizeof(buf));
-    // Check that string fits in buffer; resize buffer if necessary
-    int ret = os::log_vsnprintf(buf + prefix_len, sizeof(buf) - prefix_len, fmt, args);
-    assert(ret >= 0, "Log message buffer issue");
-    size_t msg_len = ret;
-    LogTagSet& lts = LogTagSetMapping<T0, T1, T2, T3, T4>::tagset();
-    if (msg_len >= sizeof(buf)) {
-      LogWriteHelper::write_large(lts, level, buf, prefix_len, msg_len, fmt, saved_args);
-    } else {
-      lts.log(level, buf);
-    }
-    va_end(saved_args);
+    LogTagSetMapping<T0, T1, T2, T3, T4>::tagset().vwrite(level, fmt, args);
   }
 
 #define LOG_LEVEL(level, name) ATTRIBUTE_PRINTF(2, 0) \