From 5d8d2b054224bc5fdc73b886f8e765c360f86734 Mon Sep 17 00:00:00 2001 From: "liujisi@google.com" Date: Mon, 6 Dec 2010 06:20:14 +0000 Subject: Fix issues: 200 202 211 215 237 246. --- src/google/protobuf/stubs/common.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/google/protobuf/stubs/common.cc') 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(); } -- cgit v1.2.3