<commit_before>#include "ConfigGroup.h"
#include "core/Logger.h"
using namespace std;

LogCategory config_log("config", "Config");

void config_error(const std::string& msg)
{
    config_log.error() << msg << "\n";
}

ConfigGroup& ConfigGroup::root()
{
    static ConfigGroup* root = new ConfigGroup();
    return *root;
}

// root constructor
ConfigGroup::ConfigGroup() : m_name("")
{
}

// constructor
ConfigGroup::ConfigGroup(const string& name, ConfigGroup& parent) : m_name(name), m_parent(&parent)
{
    parent.m_children.insert(pair<string, ConfigGroup*>(name, this));
}
<commit_msg>config: Initialize ConfigGroup::m_parent in root constructor.<commit_after>#include "ConfigGroup.h"
#include "core/Logger.h"
using namespace std;

LogCategory config_log("config", "Config");

void config_error(const std::string& msg)
{
    config_log.error() << msg << "\n";
}

ConfigGroup& ConfigGroup::root()
{
    static ConfigGroup* root = new ConfigGroup();
    return *root;
}

// root constructor
ConfigGroup::ConfigGroup() : m_name(""), m_parent(nullptr)
{
}

// constructor
ConfigGroup::ConfigGroup(const string& name, ConfigGroup& parent) : m_name(name), m_parent(&parent)
{
    parent.m_children.insert(pair<string, ConfigGroup*>(name, this));
}

{'fraction_non_alphanumeric': 0.1595829991980754, 'fraction_numerical': 0.0, 'mean_word_length': 5.782608695652174, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6929551', 'n_tokens_mistral': 398, 'n_tokens_neox': 398, 'n_words': 88}