diff --git a/src/config/TOMLNode.cpp b/src/config/TOMLNode.cpp index 8026445..95358af 100644 --- a/src/config/TOMLNode.cpp +++ b/src/config/TOMLNode.cpp @@ -84,7 +84,7 @@ void toml_node::setNil(void) type = NIL; } -void toml_node::setObject(TOMLMap *obj) +void toml_node::setObject(TOMLMap &obj) { value.map = obj; type = MAP; diff --git a/src/config/TOMLNode.hpp b/src/config/TOMLNode.hpp index 645669c..ef373a5 100644 --- a/src/config/TOMLNode.hpp +++ b/src/config/TOMLNode.hpp @@ -16,17 +16,17 @@ class toml_node { - union u_value + struct u_value { - std::string *str; + std::string str; int integer; bool boolean; /* std::vector *array; */ - TOMLArray *array; + TOMLArray array; /* std::map *map; */ - TOMLMap *map; + TOMLMap map; /* std::vector > *map_array; */ - TOMLMapArray *map_array; + TOMLMapArray map_array; } value; public: diff --git a/src/config/TOMLParser.cpp b/src/config/TOMLParser.cpp index 2bae3fd..172b88d 100644 --- a/src/config/TOMLParser.cpp +++ b/src/config/TOMLParser.cpp @@ -61,11 +61,11 @@ namespace config } - toml_node *TOMLParser::parseMap(void) + toml_node TOMLParser::parseMap(void) { /* std::cerr << "Parsing map" << std::endl; */ - toml_node *node = new toml_node; - TOMLMap *mapObject = new TOMLMap; + toml_node node; + TOMLMap mapObject; bool completed = false; while (!completed) { @@ -103,24 +103,24 @@ namespace config case STRING: { tokenizer.rollBackToken(); - (*mapObject)[key] = parseString(); + mapObject[key] = parseString(); break; } case OPEN_BRACKET: { - (*mapObject)[key] = parseArray(); + mapObject[key] = parseArray(); break; } case NUMBER: { tokenizer.rollBackToken(); - (*mapObject)[key] = parseNumber(); + mapObject[key] = parseNumber(); break; } case BOOL: { tokenizer.rollBackToken(); - (*mapObject)[key] = parseBool(); + mapObject[key] = parseBool(); break; } case MAPARRAY_DECL: @@ -153,7 +153,7 @@ namespace config // throw std::logic_error("parseMap: no more tokens"); // } } - node->setObject(mapObject); + node.setObject(mapObject); return (node); }