diff options
author | Vincent Richard <[email protected]> | 2013-11-21 21:16:57 +0000 |
---|---|---|
committer | Vincent Richard <[email protected]> | 2013-11-21 21:16:57 +0000 |
commit | f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8 (patch) | |
tree | 2bdc90e361a8f6e0a81164cf67afec9f78f9b959 /src/address.cpp | |
parent | Per-protocol include files. (diff) | |
download | vmime-f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8.tar.gz vmime-f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8.zip |
Boost/C++11 shared pointers.
Diffstat (limited to 'src/address.cpp')
-rw-r--r-- | src/address.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/address.cpp b/src/address.cpp index b57892d5..08a478ec 100644 --- a/src/address.cpp +++ b/src/address.cpp @@ -66,7 +66,7 @@ address-list = (address *("," address)) / obs-addr-list */ -ref <address> address::parseNext +shared_ptr <address> address::parseNext (const parsingContext& ctx, const string& buffer, const string::size_type position, const string::size_type end, string::size_type* newPosition, bool *isLastAddressOfGroup) { @@ -196,9 +196,12 @@ ref <address> address::parseNext // Parse extracted address (mailbox or group) if (pos != start) { - ref <address> parsedAddress = isGroup - ? create <mailboxGroup>().dynamicCast <address>() - : create <mailbox>().dynamicCast <address>(); + shared_ptr <address> parsedAddress; + + if (isGroup) + parsedAddress = make_shared <mailboxGroup>(); + else + parsedAddress = make_shared <mailbox>(); parsedAddress->parse(ctx, buffer, start, pos, NULL); parsedAddress->setParsedBounds(start, pos); @@ -206,7 +209,7 @@ ref <address> address::parseNext return (parsedAddress); } - return (NULL); + return null; } |