Daniele Bartolini 9 лет назад
Родитель
Сommit
19149a7519
2 измененных файлов с 18 добавлено и 22 удалено
  1. 1 3
      src/core/types.h
  2. 17 19
      src/device/device.cpp

+ 1 - 3
src/core/types.h

@@ -46,9 +46,7 @@ typedef double   f64;
 #define countof(arr) (sizeof(arr)/sizeof(arr[0]))
 
 #define CE_UNUSED(x) do { (void)(x); } while (0)
-#define CE_CONCATENATE1(a, b) a ## b
-#define CE_CONCATENATE(a, b) CE_CONCATENATE1(a, b)
-#define CE_STATIC_ASSERT(condition) typedef int CE_CONCATENATE(STATIC_ASSERT,__LINE__)[condition ? 1 : -1]
+#define CE_STATIC_ASSERT(condition, ...) static_assert(condition, "" # __VA_ARGS__)
 
 #if defined(__GNUC__)
 	#define CE_THREAD __thread

+ 17 - 19
src/device/device.cpp

@@ -672,25 +672,11 @@ void Device::reload(StringId64 type, StringId64 name)
 	}
 }
 
-static StringStream& sanitize(StringStream& ss, const char* msg)
-{
-	using namespace string_stream;
-	const char* ch = msg;
-	for (; *ch; ch++)
-	{
-		if (*ch == '"' || *ch == '\\')
-			ss << "\\";
-		ss << *ch;
-	}
-
-	return ss;
-}
-
-static const char* s_severity_map[] = { "info", "warning", "error" };
-CE_STATIC_ASSERT(countof(s_severity_map) == LogSeverity::COUNT);
-
 void Device::log(const char* msg, LogSeverity::Enum severity)
 {
+	static const char* s_severity_map[] = { "info", "warning", "error" };
+	CE_STATIC_ASSERT(countof(s_severity_map) == LogSeverity::COUNT);
+
 	if (_last_log)
 	{
 		_last_log->write(msg, strlen32(msg));
@@ -704,8 +690,20 @@ void Device::log(const char* msg, LogSeverity::Enum severity)
 		StringStream json(ta);
 
 		json << "{\"type\":\"message\",";
-		json << "\"severity\":\"" << s_severity_map[severity] << "\",";
-		json << "\"message\":\""; sanitize(json, msg) << "\"}";
+		json << "\"severity\":\"";
+		json << s_severity_map[severity];
+		json << "\",";
+		json << "\"message\":\"";
+
+		// Sanitize msg
+		for (; *msg; msg++)
+		{
+			if (*msg == '"' || *msg == '\\')
+				json << "\\";
+			json << *msg;
+		}
+
+		json << "\"}";
 
 		_console_server->send(string_stream::c_str(json));
 	}