Skip to content

Commit

Permalink
add disconnect to reset dict user_dict , remove gc()
Browse files Browse the repository at this point in the history
Signed-off-by: shewer <[email protected]>
  • Loading branch information
shewer committed May 13, 2024
1 parent 771df69 commit 86d2a30
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 7 deletions.
4 changes: 0 additions & 4 deletions src/lua_gears.cc
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,6 @@ LuaFilter::~LuaFilter() {
LOG(ERROR) << "LuaFilter::~LuaFilter of "<< name_space_ << " error(" << e.status << "): " << e.e;
}
}
lua_->gc();
}

//--- LuaTranslator
Expand Down Expand Up @@ -187,7 +186,6 @@ LuaTranslator::~LuaTranslator() {
LOG(ERROR) << "LuaTranslator::~LuaTranslator of "<< name_space_ << " error(" << e.status << "): " << e.e;
}
}
lua_->gc();
}

//--- LuaSegmentor
Expand Down Expand Up @@ -215,7 +213,6 @@ LuaSegmentor::~LuaSegmentor() {
LOG(ERROR) << "LuaSegmentor::~LuaSegmentor of "<< name_space_ << " error(" << e.status << "): " << e.e;
}
}
lua_->gc();
}

//--- LuaProcessor
Expand Down Expand Up @@ -247,7 +244,6 @@ LuaProcessor::~LuaProcessor() {
LOG(ERROR) << "LuaProcessor::~LuaProcessor of "<< name_space_ << " error(" << e.status << "): " << e.e;
}
}
lua_->gc();
}

} // namespace rime
14 changes: 13 additions & 1 deletion src/script_translator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ namespace ScriptTranslatorReg {

SET_(memorize_callback, an<LuaObj>);
optional<an<LuaObj>> memorize_callback();
string lang_name() { return language_->name();};
string lang_name() const { return (language_) ? language_->name() : "";};

// TranslatorOptions
SET_(contextual_suggestions, bool);
Expand All @@ -49,6 +49,12 @@ namespace ScriptTranslatorReg {
GET_(enable_correction, bool);
void set_enable_correction(bool);

void disconnect() {
dict_.reset();
user_dict_.reset();
language_.reset();
}

protected:
Lua* lua_;
an<LuaObj> memorize_callback_;
Expand Down Expand Up @@ -107,6 +113,10 @@ namespace ScriptTranslatorReg {
return cl ? user_dict_disabling_patterns_.Load(cl) : false;
}

an<Translator> as_translator(an<T> &t) {
return As<Translator>(t);
}

static const luaL_Reg funcs[] = {
{NULL, NULL},
};
Expand All @@ -120,6 +130,7 @@ namespace ScriptTranslatorReg {
WMEM(update_entry), // delegate UserDictionary::UpdateEntry
WMEM(reload_user_dict_disabling_patterns),
{"set_memorize_callback", raw_set_memorize_callback<T>}, // an<LuaObj> callback function
{"disconnect", WRAPMEM(T::disconnect)},
{NULL, NULL},
};

Expand All @@ -144,6 +155,7 @@ namespace ScriptTranslatorReg {
// Memory
Get_WMEM(dict),
Get_WMEM(user_dict),
{"translator", WRAP(as_translator)},
{NULL, NULL},
};

Expand Down
14 changes: 13 additions & 1 deletion src/table_translator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ namespace TableTranslatorReg {

SET_(memorize_callback, an<LuaObj>);
optional<an<LuaObj>> memorize_callback();
string lang_name() const { return language_->name();};
string lang_name() const { return (language_) ? language_->name() : "";};

// TranslatorOptions
void set_contextual_suggestions(bool);
Expand All @@ -55,6 +55,12 @@ namespace TableTranslatorReg {
GET_(enable_sentence, bool);
void set_enable_sentence(bool);

void disconnect() {
dict_.reset();
user_dict_.reset();
language_.reset();
}

protected:
Lua* lua_;
an<LuaObj> memorize_callback_;
Expand Down Expand Up @@ -147,6 +153,10 @@ namespace TableTranslatorReg {
return cl ? user_dict_disabling_patterns_.Load(cl) : false;
}

an<Translator> as_translator(an<T> &t) {
return As<Translator>(t);
}

static const luaL_Reg funcs[] = {
{NULL, NULL},
};
Expand All @@ -160,6 +170,7 @@ namespace TableTranslatorReg {
WMEM(update_entry), // delegate UserDictionary::UpdateEntry
WMEM(reload_user_dict_disabling_patterns),
{"set_memorize_callback", raw_set_memorize_callback<T>}, // an<LuaObj> callback function
{"disconnect", WRAPMEM(T::disconnect)},
{NULL, NULL},
};

Expand Down Expand Up @@ -188,6 +199,7 @@ namespace TableTranslatorReg {
// Memory
Get_WMEM(dict),
Get_WMEM(user_dict),
{"translator", WRAP(as_translator)},
{NULL, NULL},
};

Expand Down
8 changes: 7 additions & 1 deletion src/types.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1794,7 +1794,7 @@ namespace MemoryReg {
const string& new_entry_prefix, const string& lang_string);

bool update_candidate(const an<Candidate> cand, const int commits);
const string lang_name() { return language_->name(); };
const string lang_name() { return (language_) ? language_->name() : ""; };
virtual bool Memorize(const CommitEntry& entry);

LuaMemory(const Ticket& ticket, Lua* lua)
Expand All @@ -1809,6 +1809,11 @@ namespace MemoryReg {
void clearUser() {
uter.reset();
}
void disconnect() {
dict_.reset();
user_dict_.reset();
language_.reset();
}
};

vector<string> LuaMemory::decode(const Code& code) {
Expand Down Expand Up @@ -1970,6 +1975,7 @@ namespace MemoryReg {
{ "update_userdict", WRAPMEM(T::update_userdict)},
{ "update_entry", WRAPMEM(T::update_entry)},
{ "update_candidate", WRAPMEM(T::update_candidate)},
{ "disconnect", WRAPMEM(T::disconnect)},
{NULL, NULL},
};

Expand Down

0 comments on commit 86d2a30

Please sign in to comment.