diff --git a/native/jni/org_futo_inputmethod_latin_xlm_LanguageModel.cpp b/native/jni/org_futo_inputmethod_latin_xlm_LanguageModel.cpp index f4a9568017ce3d8d0f959dfaefc10254ad321d31..bc05f1fcf50a0340c38fc9661ee1ab18fabfdeca 100644 --- a/native/jni/org_futo_inputmethod_latin_xlm_LanguageModel.cpp +++ b/native/jni/org_futo_inputmethod_latin_xlm_LanguageModel.cpp @@ -519,6 +519,8 @@ struct LanguageModelState { bool MatchesBanned(const token_sequence &prior, int prior_hash, llama_token next, const std::vector<banned_sequence> &banned_sequences) const { int new_hash = append_sequence_hash(prior_hash, next); for(const auto &banned_sequence : banned_sequences) { + if(banned_sequence.sequence.empty()) continue; + if(banned_sequence.sequence.back() == specialTokens.STAR && (prior.size() >= banned_sequence.sequence.size() - 1)) { bool matches = true; for(size_t i = 0; i < banned_sequence.sequence.size() - 1; i++) {