Repository: bab2min/kiwipiepy (language: python)

Issue:
`add_user_word`와 `blocklist`를 동시에 사용할때 crash 발생
메일을 통해 제보된 내용.
아래와 같은 코드에서 `tokenize` 호출 시 crash가 발생.
```python
from kiwipiepy import Kiwi
from kiwipiepy.utils import Stopwords
kiwi = Kiwi()
stopwords = Stopwords()
kiwi.add_user_word('팔이', 'XSV', 10)
text = "루쉰(노신)의 「아Q정전」은 주인공을 통해 중국민족의 병폐,노예근성을 기탄없이 지적한 작품이다. 날품팔이를 하며 그럭저럭 살아가는 떠돌이 농민 아Q는 자기도 모르는 사이에 혁명의 와중에 휘말려 반란죄로 체포되고 사형선고를 받는다.까닭도 모르고 사형집행 서류에 서명을 하게 되지만 글자를 쓸줄 모르는 일자무식 아Q는 온 힘을 기울여 동그라미를 겨우 그린 후.."
kiwi.tokenize(text, split_sents= True, stopwords = stopwords, blocklist = ['껌팔이/NNG','품팔이/NNG', '날품팔이/NNG'])
```


Discussion / hints:

Fix patch:
diff --git a/src/KiwiPy.cpp b/src/KiwiPy.cpp
index d52a9de..a58c950 100644
--- a/src/KiwiPy.cpp
+++ b/src/KiwiPy.cpp
@@ -755,6 +755,7 @@ struct MorphemeSetObject : py::CObject<MorphemeSetObject>
 	MorphemeSetObject(py::UniqueCObj<KiwiObject>&& _kiwi)
 	{
 		kiwi = std::move(_kiwi);
+		kiwi->doPrepare();
 	}
 
 	void update(PyObject* morphs)


Test patch:
diff --git a/test/test_kiwipiepy.py b/test/test_kiwipiepy.py
index d9a9ed0..00b94ca 100644
--- a/test/test_kiwipiepy.py
+++ b/test/test_kiwipiepy.py
@@ -663,3 +663,11 @@ def test_template():
     tpl = kiwi.template("{}가 {}를 {}\ㄴ다.")
     res = tpl.format([("우리", "NP"), ("들", "XSN")], ("길", "NNG"), ("묻", "VV-I"))
     assert res == "우리들이 길을 묻는다."
+
+def test_issue_145():
+    kiwi = Kiwi()
+    stopwords = Stopwords()
+    kiwi.add_user_word('팔이', 'XSV', 10)
+    text = "루쉰(노신)의 「아Q정전」은 주인공을 통해 중국민족의 병폐,노예근성을 기탄없이 지적한 작품이다. 날품팔이를 하며 그럭저럭 살아가는 떠돌이 농민 아Q는 자기도 모르는 사이에 혁명의 와중에 휘말려 반란죄로 체포되고 사형선고를 받는다.까닭도 모르고 사형집행 서류에 서명을 하게 되지만 글자를 쓸줄 모르는 일자무식 아Q는 온 힘을 기울여 동그라미를 겨우 그린 후.."
+    tokens = kiwi.tokenize(text, split_sents= True, stopwords = stopwords, blocklist = ['껌팔이/NNG','품팔이/NNG', '날품팔이/NNG'])
+    assert tokens