From 77f01f08d79a6f438013283fb25b6b4d05ae23de Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Fri, 6 Oct 2017 20:09:37 +0200
Subject: [PATCH] safer use of full and linear indexes

---
 .../arbology/query/FullAndLinearIndexPatterns.h    |  4 ++--
 .../query/NonlinearFullAndLinearIndexPatterns.h    |  4 ++--
 .../src/indexes/arbology/FullAndLinearIndex.h      | 14 --------------
 .../indexes/arbology/NonlinearFullAndLinearIndex.h | 14 --------------
 4 files changed, 4 insertions(+), 32 deletions(-)

diff --git a/alib2algo/src/arbology/query/FullAndLinearIndexPatterns.h b/alib2algo/src/arbology/query/FullAndLinearIndexPatterns.h
index eea3475d48..3df6c8bc89 100644
--- a/alib2algo/src/arbology/query/FullAndLinearIndexPatterns.h
+++ b/alib2algo/src/arbology/query/FullAndLinearIndexPatterns.h
@@ -68,7 +68,7 @@ public:
 
 template < class SymbolType, class RankType, template < typename > class StringIndex, class StringIndexQueryAlgo >
 ext::set < unsigned > FullAndLinearIndexPatterns::query ( const indexes::arbology::FullAndLinearIndex < SymbolType, RankType, StringIndex > & fullAndLinearIndex, const tree::PrefixRankedPattern < SymbolType, RankType > & pattern ) {
-	ext::vector < unsigned > rev ( fullAndLinearIndex.getString ( ).size ( ), ( unsigned ) -1 );
+	ext::vector < unsigned > rev ( fullAndLinearIndex.getJumps ( ).size ( ), ( unsigned ) -1 );
 
 	ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > treePatternParts;
 	treePatternParts.push_back ( ext::vector < common::ranked_symbol < SymbolType, RankType > > ( ) );
@@ -100,7 +100,7 @@ ext::set < unsigned > FullAndLinearIndexPatterns::query ( const indexes::arbolog
 
 template < class SymbolType, class RankType, template < typename > class StringIndex, class StringIndexQueryAlgo >
 ext::set < unsigned > FullAndLinearIndexPatterns::query ( const indexes::arbology::FullAndLinearIndex < SymbolType, RankType, StringIndex > & fullAndLinearIndex, const tree::PrefixRankedBarPattern < SymbolType, RankType > & pattern ) {
-	ext::vector < unsigned > rev ( fullAndLinearIndex.getString ( ).size ( ), ( unsigned ) -1 );
+	ext::vector < unsigned > rev ( fullAndLinearIndex.getJumps ( ).size ( ), ( unsigned ) -1 );
 
 	ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > treePatternParts;
 	treePatternParts.push_back ( ext::vector < common::ranked_symbol < SymbolType, RankType > > ( ) );
diff --git a/alib2algo/src/arbology/query/NonlinearFullAndLinearIndexPatterns.h b/alib2algo/src/arbology/query/NonlinearFullAndLinearIndexPatterns.h
index 1f1c3bc531..e3a2cca90c 100644
--- a/alib2algo/src/arbology/query/NonlinearFullAndLinearIndexPatterns.h
+++ b/alib2algo/src/arbology/query/NonlinearFullAndLinearIndexPatterns.h
@@ -69,7 +69,7 @@ public:
 template < class SymbolType, class RankType, template < typename > class StringIndex, class StringIndexQueryAlgo >
 ext::set < unsigned > NonlinearFullAndLinearIndexPatterns::query ( const indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex > & fullAndLinearIndex, const tree::PrefixRankedNonlinearPattern < SymbolType, RankType > & pattern ) {
 	ext::map < std::pair < unsigned, common::ranked_symbol < SymbolType, RankType > >, unsigned > nonlinearVariablesMap;
-	ext::vector < unsigned > rev ( fullAndLinearIndex.getString ( ).size ( ), ( unsigned ) -1 );
+	ext::vector < unsigned > rev ( fullAndLinearIndex.getJumps ( ).size ( ), ( unsigned ) -1 );
 
 	ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > treePatternParts;
 	treePatternParts.push_back ( ext::vector < common::ranked_symbol < SymbolType, RankType > > ( ) );
@@ -115,7 +115,7 @@ ext::set < unsigned > NonlinearFullAndLinearIndexPatterns::query ( const indexes
 template < class SymbolType, class RankType, template < typename > class StringIndex, class StringIndexQueryAlgo >
 ext::set < unsigned > NonlinearFullAndLinearIndexPatterns::query ( const indexes::arbology::NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex > & fullAndLinearIndex, const tree::PrefixRankedBarNonlinearPattern < SymbolType, RankType > & pattern ) {
 	ext::map < std::pair < unsigned, common::ranked_symbol < SymbolType, RankType > >, unsigned > nonlinearVariablesMap;
-	ext::vector < unsigned > rev ( fullAndLinearIndex.getString ( ).size ( ), ( unsigned ) -1 );
+	ext::vector < unsigned > rev ( fullAndLinearIndex.getJumps ( ).size ( ), ( unsigned ) -1 );
 
 	ext::vector < ext::vector < common::ranked_symbol < SymbolType, RankType > > > treePatternParts;
 	treePatternParts.push_back ( ext::vector < common::ranked_symbol < SymbolType, RankType > > ( ) );
diff --git a/alib2data/src/indexes/arbology/FullAndLinearIndex.h b/alib2data/src/indexes/arbology/FullAndLinearIndex.h
index 5cdc99cf1e..164be921ac 100644
--- a/alib2data/src/indexes/arbology/FullAndLinearIndex.h
+++ b/alib2data/src/indexes/arbology/FullAndLinearIndex.h
@@ -72,10 +72,6 @@ public:
 
 	ext::vector < int > && getJumps ( ) &&;
 
-	const ext::vector < common::ranked_symbol < SymbolType, RankType > > & getString ( ) const &;
-
-	ext::vector < common::ranked_symbol < SymbolType, RankType > > && getString ( ) &&;
-
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return m_StringIndex.getAlphabet ( );
 	}
@@ -162,16 +158,6 @@ ext::vector < int > && FullAndLinearIndex < SymbolType, RankType, StringIndex >:
 	return std::move ( m_JumpTable );
 }
 
-template < class SymbolType, class RankType, template < typename > class StringIndex >
-const ext::vector < common::ranked_symbol < SymbolType, RankType > > & FullAndLinearIndex < SymbolType, RankType, StringIndex >::getString ( ) const & {
-	return m_StringIndex.getString ( );
-}
-
-template < class SymbolType, class RankType, template < typename > class StringIndex >
-ext::vector < common::ranked_symbol < SymbolType, RankType > > && FullAndLinearIndex < SymbolType, RankType, StringIndex >::getString ( ) && {
-	return std::move ( m_StringIndex ).getString ( );
-}
-
 template < class SymbolType, class RankType, template < typename > class StringIndex >
 void FullAndLinearIndex < SymbolType, RankType, StringIndex >::setStringIndex ( indexes::stringology::PositionHeap < common::ranked_symbol < SymbolType, RankType > > stringIndex ) {
 	this->m_StringIndex = std::move ( stringIndex );
diff --git a/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h b/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h
index db033c8298..58890d3095 100644
--- a/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h
+++ b/alib2data/src/indexes/arbology/NonlinearFullAndLinearIndex.h
@@ -80,10 +80,6 @@ public:
 
 	ext::vector < unsigned > && getRepeats ( ) &&;
 
-	const ext::vector < common::ranked_symbol < SymbolType, RankType > > & getString ( ) const &;
-
-	ext::vector < common::ranked_symbol < SymbolType, RankType > > && getString ( ) &&;
-
 	const ext::set < common::ranked_symbol < SymbolType, RankType > > & getAlphabet ( ) const & {
 		return m_StringIndex.getAlphabet ( );
 	}
@@ -180,16 +176,6 @@ ext::vector < unsigned > && NonlinearFullAndLinearIndex < SymbolType, RankType,
 	return std::move ( m_Repeats );
 }
 
-template < class SymbolType, class RankType, template < typename > class StringIndex >
-const ext::vector < common::ranked_symbol < SymbolType, RankType > > & NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex >::getString ( ) const & {
-	return m_StringIndex.getString ( );
-}
-
-template < class SymbolType, class RankType, template < typename > class StringIndex >
-ext::vector < common::ranked_symbol < SymbolType, RankType > > && NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex >::getString ( ) && {
-	return std::move ( m_StringIndex ).getString ( );
-}
-
 template < class SymbolType, class RankType, template < typename > class StringIndex >
 void NonlinearFullAndLinearIndex < SymbolType, RankType, StringIndex >::setStringIndex ( StringIndex < common::ranked_symbol < SymbolType, RankType > > stringIndex ) {
 	this->m_StringIndex = std::move ( stringIndex );
-- 
GitLab