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-07 06:23:55 +0000
committerGravatar liujisi@google.com <liujisi@google.com@630680e5-0e50-0410-840e-4b1c322b438d>2010-12-07 06:23:55 +0000
commit1fd96c43a01ec913a89de31c58c0bc9f1e5bf542 (patch)
treefd75a0bffe10b1e57155cbf70d32d41e44302be0 /src/google/protobuf/stubs/common.cc
parentb4d64bf7f3aa65318a5262977e59f42595c4c5d0 (diff)
Add new files for vcprojs, fix issues: 165, 211, 228, 240
Diffstat (limited to 'src/google/protobuf/stubs/common.cc')
-rw-r--r--src/google/protobuf/stubs/common.cc18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/google/protobuf/stubs/common.cc b/src/google/protobuf/stubs/common.cc
index 34a7d139..7b15be44 100644
--- a/src/google/protobuf/stubs/common.cc
+++ b/src/google/protobuf/stubs/common.cc
@@ -177,12 +177,6 @@ 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;
@@ -198,15 +192,13 @@ void LogMessage::Finish() {
if (level_ == LOGLEVEL_FATAL) {
#ifdef PROTOBUF_USE_EXCEPTIONS
- throw -1;
+ throw FatalException(filename_, line_, message_);
#else
abort();
#endif
}
}
-#undef PROTOBUF_USE_EXCEPTIONS
-
void LogFinisher::operator=(LogMessage& other) {
other.Finish();
}
@@ -373,5 +365,13 @@ void ShutdownProtobufLibrary() {
internal::shutdown_functions_mutex = NULL;
}
+#ifdef PROTOBUF_USE_EXCEPTIONS
+FatalException::~FatalException() throw() {}
+
+const char* FatalException::what() const throw() {
+ return message_.c_str();
+}
+#endif
+
} // namespace protobuf
} // namespace google