aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/google/protobuf/stubs/common.cc
diff options
context:
space:
mode:
authorGravatar liujisi@google.com <liujisi@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2010-12-06 06:20:14 +0000
committerGravatar liujisi@google.com <liujisi@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2010-12-06 06:20:14 +0000
commit5d8d2b054224bc5fdc73b886f8e765c360f86734 (patch)
tree650fa406aa2dbacbfb4ff5b640411cb5643d0218 /src/google/protobuf/stubs/common.cc
parent2726e7a6ebd72eec6f66abe4ced3c88983f20b8e (diff)
Fix issues: 200 202 211 215 237 246.
Diffstat (limited to 'src/google/protobuf/stubs/common.cc')
-rw-r--r--src/google/protobuf/stubs/common.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/google/protobuf/stubs/common.cc b/src/google/protobuf/stubs/common.cc
index 1e2d68d2..34a7d139 100644
--- a/src/google/protobuf/stubs/common.cc
+++ b/src/google/protobuf/stubs/common.cc
@@ -177,6 +177,12 @@ LogMessage::LogMessage(LogLevel level, const char* filename, int line)
: level_(level), filename_(filename), line_(line) {}
LogMessage::~LogMessage() {}
+#if defined(_MSC_VER) && defined(_CPPUNWIND)
+ #define PROTOBUF_USE_EXCEPTIONS
+#elif defined(__EXCEPTIONS)
+ #define PROTOBUF_USE_EXCEPTIONS
+#endif
+
void LogMessage::Finish() {
bool suppress = false;
@@ -191,10 +197,16 @@ void LogMessage::Finish() {
}
if (level_ == LOGLEVEL_FATAL) {
+#ifdef PROTOBUF_USE_EXCEPTIONS
+ throw -1;
+#else
abort();
+#endif
}
}
+#undef PROTOBUF_USE_EXCEPTIONS
+
void LogFinisher::operator=(LogMessage& other) {
other.Finish();
}