aboutsummaryrefslogtreecommitdiffstats
path: root/src/address.cpp
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2013-11-21 21:16:57 +0000
committerVincent Richard <[email protected]>2013-11-21 21:16:57 +0000
commitf9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8 (patch)
tree2bdc90e361a8f6e0a81164cf67afec9f78f9b959 /src/address.cpp
parentPer-protocol include files. (diff)
downloadvmime-f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8.tar.gz
vmime-f9913fa28a27f23fde2d4956c62cbb2fb2bc2ee8.zip
Boost/C++11 shared pointers.
Diffstat (limited to 'src/address.cpp')
-rw-r--r--src/address.cpp13
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;
}