From 8ab0f07106c2d74545eab449afdb5065a6fdbdf5 Mon Sep 17 00:00:00 2001 From: ilor <kailoran@gmail.com> Date: Tue, 19 Oct 2010 15:32:07 +0200 Subject: [PATCH] fill the attribute_masks table, making things work --- libcorpus2/tagsetparser.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libcorpus2/tagsetparser.cpp b/libcorpus2/tagsetparser.cpp index c75f6c0..6e71a61 100644 --- a/libcorpus2/tagsetparser.cpp +++ b/libcorpus2/tagsetparser.cpp @@ -83,20 +83,25 @@ Tagset TagsetParser::load_ini(std::istream &is) mask_t current_value = 1; std::vector<std::string> vec; + idx_t current_attribute_index = 0; foreach (const vmap_t::value_type v, vmap) { + mask_t attribute_mask = 0; vec.push_back(v.first); tagset.attribute_values_.resize( tagset.attribute_values_.size() + 1); foreach (const std::string& s, v.second) { tagset.attribute_values_.back().push_back(current_value); tagset.value_mask_to_attribute_index_.insert( - std::make_pair(current_value, vec.size() - 1)); + std::make_pair(current_value, current_attribute_index)); tagset.string_to_value_mask_.insert( std::make_pair(s, current_value)); tagset.value_mask_to_string_.insert( std::make_pair(current_value, s)); + attribute_mask |= current_value; current_value <<= 1; } + tagset.attribute_masks_.push_back(attribute_mask); + ++current_attribute_index; } tagset.attribute_dict_.load_sorted_data(vec); -- GitLab