From c498cfa5cfd6408b465e45409987467b47b2b73d Mon Sep 17 00:00:00 2001 From: Star Rauchenberger Date: Wed, 14 Dec 2022 10:12:03 -0500 Subject: Fixed uncopyable word class --- lib/word.cpp | 9 +++++++-- lib/word.h | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/word.cpp b/lib/word.cpp index 60657ba..2fccb9f 100644 --- a/lib/word.cpp +++ b/lib/word.cpp @@ -44,7 +44,7 @@ namespace verbly { return field::joinThroughWhere(object::word, "lemma_id", object::form, "lemmas_forms", "form_id", "category", static_cast(category)); } - word::word(const database& db, hatkirby::row row) : db_(db), valid_(true) + word::word(const database& db, hatkirby::row row) : db_(&db), valid_(true) { id_ = mpark::get(row[0]); @@ -104,7 +104,12 @@ namespace verbly { void word::initializeForm(inflection infl) const { - forms_[infl] = db_.forms(form::words(infl) %= *this, verbly::form::id, -1).all(); + if (!db_) + { + throw std::domain_error("Database not present"); + } + + forms_[infl] = db_->forms(form::words(infl) %= *this, verbly::form::id, -1).all(); } filter word::synonyms_field::operator%=(filter joinCondition) const diff --git a/lib/word.h b/lib/word.h index f52cc4d..6c3a5d7 100644 --- a/lib/word.h +++ b/lib/word.h @@ -214,7 +214,7 @@ namespace verbly { std::vector frames_; mutable std::map> forms_; - const database& db_; + const database* db_ = nullptr; }; }; -- cgit 1.4.1