@@ -31,19 +31,9 @@ AnchoredVariable::AnchoredVariable(Transaction *t,
3131 const std::string &name)
3232 : m_transaction(t),
3333 m_offset (0 ),
34- m_name(" " ),
34+ m_name(name ),
3535 m_value(" " ),
36- m_var(NULL ) {
37- m_name.append (name);
38- m_var = new VariableValue (&m_name);
39- }
40-
41-
42- AnchoredVariable::~AnchoredVariable () {
43- if (m_var) {
44- delete (m_var);
45- m_var = NULL ;
46- }
36+ m_var(&name) {
4737}
4838
4939
@@ -54,58 +44,16 @@ void AnchoredVariable::unset() {
5444
5545void AnchoredVariable::set (const std::string &a, size_t offset,
5646 size_t offsetLen) {
57- std::unique_ptr<VariableOrigin> origin (new VariableOrigin ());
58-
5947 m_offset = offset;
6048 m_value.assign (a.c_str (), a.size ());
61- origin->m_offset = offset;
62- origin->m_length = offsetLen;
63- m_var->addOrigin (std::move (origin));
49+ m_var.addOrigin (offsetLen, offset);
6450}
6551
6652
6753void AnchoredVariable::set (const std::string &a, size_t offset) {
68- std::unique_ptr<VariableOrigin> origin (new VariableOrigin ());
69-
7054 m_offset = offset;
7155 m_value.assign (a.c_str (), a.size ());
72- origin->m_offset = offset;
73- origin->m_length = m_value.size ();
74- m_var->addOrigin (std::move (origin));
75- }
76-
77-
78- void AnchoredVariable::append (const std::string &a, size_t offset,
79- bool spaceSeparator) {
80- std::unique_ptr<VariableOrigin> origin (
81- new VariableOrigin ());
82-
83- if (spaceSeparator && !m_value.empty ()) {
84- m_value.append (" " + a);
85- } else {
86- m_value.append (a);
87- }
88- m_offset = offset;
89- origin->m_offset = offset;
90- origin->m_length = a.size ();
91- m_var->addOrigin (std::move (origin));
92- }
93-
94-
95- void AnchoredVariable::append (const std::string &a, size_t offset,
96- bool spaceSeparator, int size) {
97- std::unique_ptr<VariableOrigin> origin (
98- new VariableOrigin ());
99-
100- if (spaceSeparator && !m_value.empty ()) {
101- m_value.append (" " + a);
102- } else {
103- m_value.append (a);
104- }
105- m_offset = offset;
106- origin->m_offset = offset;
107- origin->m_length = size;
108- m_var->addOrigin (std::move (origin));
56+ m_var.addOrigin (m_value.size (), offset);
10957}
11058
11159
@@ -114,9 +62,8 @@ void AnchoredVariable::evaluate(std::vector<const VariableValue *> *l) {
11462 return ;
11563 }
11664
117- m_var->setValue (m_value);
118- VariableValue *m_var2 = new VariableValue (m_var);
119- l->push_back (m_var2);
65+ m_var.setValue (m_value);
66+ l->push_back (new VariableValue (&m_var));
12067}
12168
12269
@@ -129,9 +76,7 @@ std::unique_ptr<std::string> AnchoredVariable::resolveFirst() {
12976 if (m_value.empty ()) {
13077 return nullptr ;
13178 }
132- std::unique_ptr<std::string> a (new std::string ());
133- a->append (m_value);
134- return a;
79+ return std::make_unique<std::string>(m_value);
13580}
13681
13782
0 commit comments