summaryrefslogtreecommitdiff
path: root/src/DefaultBtProgressInfoFile.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-07-12 07:46:33 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2008-07-12 07:46:33 +0000
commitc3fbc48d4c2d99a53379917eabfcae4777e4375b (patch)
treebe1333e03ecf150a3de325389e4f4caf453bb9c1 /src/DefaultBtProgressInfoFile.cc
parentcefbf6407ee7f311099c024328a456359d1e2694 (diff)
2008-07-12 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>
Moved the calls of std::ios::exceptions() inside of try-catch block because if an error occurred in constructor of std::fstream, then exception is thrown immediately when std::ios::exceptions() is called which results unhandled exception and aria2c aborts. * src/DefaultBtProgressInfoFile.cc
Diffstat (limited to 'src/DefaultBtProgressInfoFile.cc')
-rw-r--r--src/DefaultBtProgressInfoFile.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/DefaultBtProgressInfoFile.cc b/src/DefaultBtProgressInfoFile.cc
index 91d580a8..69510e8c 100644
--- a/src/DefaultBtProgressInfoFile.cc
+++ b/src/DefaultBtProgressInfoFile.cc
@@ -91,8 +91,8 @@ void DefaultBtProgressInfoFile::save() {
_logger->info(MSG_SAVING_SEGMENT_FILE, _filename.c_str());
std::string filenameTemp = _filename+"__temp";
std::ofstream o(filenameTemp.c_str(), std::ios::out|std::ios::binary);
- o.exceptions(std::ios::failbit);
try {
+ o.exceptions(std::ios::failbit);
bool torrentDownload = isTorrentDownload();
// file version: 16 bits
// value: '0'
@@ -175,10 +175,10 @@ void DefaultBtProgressInfoFile::load()
{
_logger->info(MSG_LOADING_SEGMENT_FILE, _filename.c_str());
std::ifstream in(_filename.c_str(), std::ios::in|std::ios::binary);
- in.exceptions(std::ios::failbit);
unsigned char* savedInfoHash = 0;
unsigned char* savedBitfield = 0;
try {
+ in.exceptions(std::ios::failbit);
unsigned char version[2];
in.read((char*)version, sizeof(version));
if(DefaultBtProgressInfoFile::V0000 != Util::toHex(version, sizeof(version))) {