aboutsummaryrefslogtreecommitdiff
path: root/src/mnemonics
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-10-21 20:59:55 +0100
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2017-03-25 11:51:04 +0000
commite98f1114a04564771d5475ca46127a3bd7fe7265 (patch)
tree91b56742a5ec02caf7789dc69006ca1c5fce2fc6 /src/mnemonics
parentMerge pull request #1924 (diff)
downloadmonero-e98f1114a04564771d5475ca46127a3bd7fe7265.tar.xz
mnemonics: misc cleanup
Pass relevant information to the base class instead of overwriting default values later, use objects instead of pointers to objects to avoid having to new objects unnecessarily.
Diffstat (limited to 'src/mnemonics')
-rw-r--r--src/mnemonics/dutch.h11
-rw-r--r--src/mnemonics/english.h11
-rw-r--r--src/mnemonics/french.h11
-rw-r--r--src/mnemonics/german.h11
-rw-r--r--src/mnemonics/italian.h11
-rw-r--r--src/mnemonics/japanese.h11
-rw-r--r--src/mnemonics/language_base.h36
-rw-r--r--src/mnemonics/old_english.h11
-rw-r--r--src/mnemonics/portuguese.h11
-rw-r--r--src/mnemonics/russian.h11
-rw-r--r--src/mnemonics/spanish.h11
11 files changed, 46 insertions, 100 deletions
diff --git a/src/mnemonics/dutch.h b/src/mnemonics/dutch.h
index d0a972e59..0d7a637e6 100644
--- a/src/mnemonics/dutch.h
+++ b/src/mnemonics/dutch.h
@@ -49,9 +49,7 @@ namespace Language
class Dutch: public Base
{
public:
- Dutch()
- {
- word_list = new std::vector<std::string>({
+ Dutch(): Base("Dutch", std::vector<std::string>({
"aalglad",
"aalscholver",
"aambeeld",
@@ -1678,11 +1676,8 @@ namespace Language
"zwiep",
"zwijmel",
"zworen"
- });
- unique_prefix_length = 4;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "Dutch";
+ }), 4)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/english.h b/src/mnemonics/english.h
index 703c7780c..e6cfa8951 100644
--- a/src/mnemonics/english.h
+++ b/src/mnemonics/english.h
@@ -49,9 +49,7 @@ namespace Language
class English: public Base
{
public:
- English()
- {
- word_list = new std::vector<std::string>({
+ English(): Base("English", std::vector<std::string>({
"abbey",
"abducts",
"ability",
@@ -1678,11 +1676,8 @@ namespace Language
"zombie",
"zones",
"zoom"
- });
- unique_prefix_length = 3;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "English";
+ }), 3)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/french.h b/src/mnemonics/french.h
index 2f6eb7e8a..6cf44a197 100644
--- a/src/mnemonics/french.h
+++ b/src/mnemonics/french.h
@@ -49,9 +49,7 @@ namespace Language
class French: public Base
{
public:
- French()
- {
- word_list = new std::vector<std::string>({
+ French(): Base("French", std::vector<std::string>({
"abandon",
"abattre",
"aboi",
@@ -1678,11 +1676,8 @@ namespace Language
"zinc",
"zone",
"zoom"
- });
- unique_prefix_length = 4;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "French";
+ }), 4)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/german.h b/src/mnemonics/german.h
index a9614e4a9..1a1e6b467 100644
--- a/src/mnemonics/german.h
+++ b/src/mnemonics/german.h
@@ -51,9 +51,7 @@ namespace Language
class German: public Base
{
public:
- German()
- {
- word_list = new std::vector<std::string>({
+ German(): Base("German", std::vector<std::string>({
"Abakus",
"Abart",
"abbilden",
@@ -1680,11 +1678,8 @@ namespace Language
"Zündung",
"Zweck",
"Zyklop"
- });
- unique_prefix_length = 4;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "German";
+ }), 4)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/italian.h b/src/mnemonics/italian.h
index 24ed67442..28cee9d9a 100644
--- a/src/mnemonics/italian.h
+++ b/src/mnemonics/italian.h
@@ -51,9 +51,7 @@ namespace Language
class Italian: public Base
{
public:
- Italian()
- {
- word_list = new std::vector<std::string>({
+ Italian(): Base("Italian", std::vector<std::string>({
"abbinare",
"abbonato",
"abisso",
@@ -1680,11 +1678,8 @@ namespace Language
"zolfo",
"zombie",
"zucchero"
- });
- unique_prefix_length = 4;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "Italian";
+ }), 4)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/japanese.h b/src/mnemonics/japanese.h
index b437ae2af..09d05d132 100644
--- a/src/mnemonics/japanese.h
+++ b/src/mnemonics/japanese.h
@@ -51,9 +51,7 @@ namespace Language
class Japanese: public Base
{
public:
- Japanese()
- {
- word_list = new std::vector<std::string>({
+ Japanese(): Base("Japanese", std::vector<std::string>({
"あいこくしん",
"あいさつ",
"あいだ",
@@ -1680,11 +1678,8 @@ namespace Language
"ひさん",
"びじゅつかん",
"ひしょ"
- });
- unique_prefix_length = 3;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "Japanese";
+ }), 3)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/language_base.h b/src/mnemonics/language_base.h
index 5ad4211d4..c085a8b1d 100644
--- a/src/mnemonics/language_base.h
+++ b/src/mnemonics/language_base.h
@@ -73,9 +73,9 @@ namespace Language
class Base
{
protected:
- std::vector<std::string> *word_list; /*!< A pointer to the array of words */
- std::unordered_map<std::string, uint32_t> *word_map; /*!< hash table to find word's index */
- std::unordered_map<std::string, uint32_t> *trimmed_word_map; /*!< hash table to find word's trimmed index */
+ const std::vector<std::string> word_list; /*!< A pointer to the array of words */
+ std::unordered_map<std::string, uint32_t> word_map; /*!< hash table to find word's index */
+ std::unordered_map<std::string, uint32_t> trimmed_word_map; /*!< hash table to find word's trimmed index */
std::string language_name; /*!< Name of language */
uint32_t unique_prefix_length; /*!< Number of unique starting characters to trim the wordlist to when matching */
/*!
@@ -84,33 +84,29 @@ namespace Language
void populate_maps()
{
int ii;
- std::vector<std::string>::iterator it;
- for (it = word_list->begin(), ii = 0; it != word_list->end(); it++, ii++)
+ std::vector<std::string>::const_iterator it;
+ for (it = word_list.begin(), ii = 0; it != word_list.end(); it++, ii++)
{
- (*word_map)[*it] = ii;
+ word_map[*it] = ii;
if (it->length() > unique_prefix_length)
{
- (*trimmed_word_map)[utf8prefix(*it, unique_prefix_length)] = ii;
+ trimmed_word_map[utf8prefix(*it, unique_prefix_length)] = ii;
}
else
{
- (*trimmed_word_map)[*it] = ii;
+ trimmed_word_map[*it] = ii;
}
}
}
public:
- Base()
+ Base(const char *language_name, const std::vector<std::string> &words, uint32_t prefix_length):
+ word_list(words),
+ unique_prefix_length(prefix_length),
+ language_name(language_name)
{
- word_list = new std::vector<std::string>;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- unique_prefix_length = 4;
}
virtual ~Base()
{
- delete word_list;
- delete word_map;
- delete trimmed_word_map;
}
/*!
* \brief Returns a pointer to the word list.
@@ -118,7 +114,7 @@ namespace Language
*/
const std::vector<std::string>& get_word_list() const
{
- return *word_list;
+ return word_list;
}
/*!
* \brief Returns a pointer to the word map.
@@ -126,7 +122,7 @@ namespace Language
*/
const std::unordered_map<std::string, uint32_t>& get_word_map() const
{
- return *word_map;
+ return word_map;
}
/*!
* \brief Returns a pointer to the trimmed word map.
@@ -134,13 +130,13 @@ namespace Language
*/
const std::unordered_map<std::string, uint32_t>& get_trimmed_word_map() const
{
- return *trimmed_word_map;
+ return trimmed_word_map;
}
/*!
* \brief Returns the name of the language.
* \return Name of the language.
*/
- std::string get_language_name() const
+ const std::string &get_language_name() const
{
return language_name;
}
diff --git a/src/mnemonics/old_english.h b/src/mnemonics/old_english.h
index 690e46616..1a96f4b1e 100644
--- a/src/mnemonics/old_english.h
+++ b/src/mnemonics/old_english.h
@@ -51,9 +51,7 @@ namespace Language
class OldEnglish: public Base
{
public:
- OldEnglish()
- {
- word_list = new std::vector<std::string>({
+ OldEnglish(): Base("OldEnglish", std::vector<std::string>({
"like",
"just",
"love",
@@ -1680,11 +1678,8 @@ namespace Language
"unseen",
"weapon",
"weary"
- });
- unique_prefix_length = 4;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "OldEnglish";
+ }), 4)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/portuguese.h b/src/mnemonics/portuguese.h
index 91e2145b8..09d7132f5 100644
--- a/src/mnemonics/portuguese.h
+++ b/src/mnemonics/portuguese.h
@@ -49,9 +49,7 @@ namespace Language
class Portuguese: public Base
{
public:
- Portuguese()
- {
- word_list = new std::vector<std::string>({
+ Portuguese(): Base("Portuguese", std::vector<std::string>({
"abaular",
"abdominal",
"abeto",
@@ -1678,11 +1676,8 @@ namespace Language
"zeloso",
"zenite",
"zumbi"
- });
- unique_prefix_length = 4;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "Portuguese";
+ }), 4)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/russian.h b/src/mnemonics/russian.h
index 981f40d98..b3db4aa4c 100644
--- a/src/mnemonics/russian.h
+++ b/src/mnemonics/russian.h
@@ -51,9 +51,7 @@ namespace Language
class Russian: public Base
{
public:
- Russian()
- {
- word_list = new std::vector<std::string>({
+ Russian(): Base("Russian", std::vector<std::string>({
"абажур",
"абзац",
"абонент",
@@ -1680,11 +1678,8 @@ namespace Language
"яхта",
"ячейка",
"ящик"
- });
- unique_prefix_length = 4;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "Russian";
+ }), 4)
+ {
populate_maps();
}
};
diff --git a/src/mnemonics/spanish.h b/src/mnemonics/spanish.h
index ec3a8991d..a9a93243c 100644
--- a/src/mnemonics/spanish.h
+++ b/src/mnemonics/spanish.h
@@ -51,9 +51,7 @@ namespace Language
class Spanish: public Base
{
public:
- Spanish()
- {
- word_list = new std::vector<std::string>({
+ Spanish(): Base("Spanish", std::vector<std::string>({
"ábaco",
"abdomen",
"abeja",
@@ -1680,11 +1678,8 @@ namespace Language
"risa",
"ritmo",
"rito"
- });
- unique_prefix_length = 4;
- word_map = new std::unordered_map<std::string, uint32_t>;
- trimmed_word_map = new std::unordered_map<std::string, uint32_t>;
- language_name = "Spanish";
+ }), 4)
+ {
populate_maps();
}
};