From 32be8ec384bfd78e189d3de6609e50cf4dd072a2 Mon Sep 17 00:00:00 2001 From: Jonathan Beck Date: Fri, 16 Oct 2009 22:26:13 +0200 Subject: Fix Node lifecycle and change argument as reference to const reference. --- src/String.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'src/String.cpp') diff --git a/src/String.cpp b/src/String.cpp index 7bf744c..dbc81ac 100644 --- a/src/String.cpp +++ b/src/String.cpp @@ -32,7 +32,18 @@ String::String(plist_t node) : Node(node) { } -String::String(std::string& s) : Node(PLIST_STRING) +String::String(PList::String& s) : Node(PLIST_UINT) +{ + plist_set_string_val(_node, s.GetValue().c_str()); +} + +String& String::operator=(PList::String& s) +{ + plist_free(_node); + _node = plist_copy(s.GetPlist()); +} + +String::String(const std::string& s) : Node(PLIST_STRING) { plist_set_string_val(_node, s.c_str()); } @@ -41,7 +52,12 @@ String::~String() { } -void String::SetValue(std::string& s) +Node* String::Clone() +{ + return new String(*this); +} + +void String::SetValue(const std::string& s) { plist_set_string_val(_node, s.c_str()); } -- cgit v1.1-32-gdbae