Removed redundant try-catch, zone's constructor never throw.

In the C++11 version, added noexcept.
In the C++03 version, added throw() as comments because actual throw() introduces some overhead.
Untabified.
This commit is contained in:
Takatoshi Kondo
2013-09-04 14:47:38 +09:00
parent 7593e5ce0e
commit 72b3064a67
2 changed files with 195 additions and 208 deletions

View File

@@ -149,7 +149,7 @@ private:
finalizer_array finalizer_array_;
public:
zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE);
zone(size_t chunk_size = MSGPACK_ZONE_CHUNK_SIZE) noexcept;
public:
static zone* create(size_t chunk_size);
@@ -185,13 +185,7 @@ inline zone* zone::create(size_t chunk_size)
if (!z) {
return nullptr;
}
try {
new (z) zone(chunk_size);
}
catch (...) {
::free(z);
return nullptr;
}
new (z) zone(chunk_size);
return z;
}
@@ -201,7 +195,7 @@ inline void zone::destroy(zone* z)
::free(z);
}
inline zone::zone(size_t chunk_size):chunk_size_(chunk_size), chunk_list_(chunk_size_)
inline zone::zone(size_t chunk_size) noexcept:chunk_size_(chunk_size), chunk_list_(chunk_size_)
{
}