alloc/free pinyin instance
authorPeng Wu <alexepico@gmail.com>
Sat, 8 Oct 2011 02:03:26 +0000 (10:03 +0800)
committerPeng Wu <alexepico@gmail.com>
Thu, 22 Dec 2011 04:23:13 +0000 (12:23 +0800)
src/PYMain.cc
src/PYPBopomofoEditor.cc
src/PYPDoublePinyinEditor.cc
src/PYPDoublePinyinEditor.h
src/PYPFullPinyinEditor.cc
src/PYPPinyinEditor.h

index d24cc3c..ae7c4cd 100644 (file)
@@ -87,9 +87,9 @@ start_component (void)
     }
 
     Database::init ();
+    LibPinyinBackEnd::init ();
     PinyinConfig::init (bus);
     BopomofoConfig::init (bus);
-    LibPinyinBackEnd::init ();
 
     g_signal_connect ((IBusBus *)bus, "disconnected", G_CALLBACK (ibus_disconnected_cb), NULL);
 
index 1945183..f13fcc9 100644 (file)
@@ -20,6 +20,7 @@
  */
 #include "PYPBopomofoEditor.h"
 #include "PYConfig.h"
+#include "PYLibPinyin.h"
 #include "PYPinyinProperties.h"
 #include "PYSimpTradConverter.h"
 #include "PYHalfFullConverter.h"
@@ -48,10 +49,13 @@ LibPinyinBopomofoEditor::LibPinyinBopomofoEditor
     : LibPinyinPhoneticEditor (props, config),
       m_select_mode (FALSE)
 {
+    m_instance = LibPinyinBackEnd::instance ().allocChewingInstance ();
 }
 
 LibPinyinBopomofoEditor::~LibPinyinBopomofoEditor (void)
 {
+    LibPinyinBackEnd::instance ().freeChewingInstance (m_instance);
+    m_instance = NULL;
 }
 
 void
index d37a480..8db80a4 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "PYPDoublePinyinEditor.h"
 #include "PYConfig.h"
+#include "PYLibPinyin.h"
 
 #define DEFINE_DOUBLE_PINYIN_TABLES
 #include "PYDoublePinyinTable.h"
@@ -48,6 +49,13 @@ LibPinyinDoublePinyinEditor::LibPinyinDoublePinyinEditor
 ( PinyinProperties & props, Config & config)
     : LibPinyinPinyinEditor (props, config)
 {
+    m_instance = LibPinyinBackEnd::instance ().allocPinyinInstance ();
+}
+
+LibPinyinDoublePinyinEditor::~LibPinyinDoublePinyinEditor (void)
+{
+    LibPinyinBackEnd::instance ().freePinyinInstance (m_instance);
+    m_instance = NULL;
 }
 
 gboolean
index b06e144..0989a24 100644 (file)
@@ -29,6 +29,7 @@ class LibPinyinDoublePinyinEditor : public LibPinyinPinyinEditor {
 
 public:
     LibPinyinDoublePinyinEditor (PinyinProperties & props, Config & config);
+    ~LibPinyinDoublePinyinEditor (void);
 
     gboolean insert (gint ch);
 
index 064ae40..f07204b 100644 (file)
@@ -21,6 +21,7 @@
 
 #include "PYPFullPinyinEditor.h"
 #include "PYConfig.h"
+#include "PYLibPinyin.h"
 
 using namespace PY;
 
@@ -28,10 +29,13 @@ LibPinyinFullPinyinEditor::LibPinyinFullPinyinEditor
 (PinyinProperties & props, Config & config)
     : LibPinyinPinyinEditor (props, config)
 {
+    m_instance = LibPinyinBackEnd::instance ().allocPinyinInstance ();
 }
 
 LibPinyinFullPinyinEditor::~LibPinyinFullPinyinEditor (void)
 {
+    LibPinyinBackEnd::instance ().freePinyinInstance (m_instance);
+    m_instance = NULL;
 }
 
 void
index 87fe210..3c61918 100644 (file)
@@ -29,8 +29,6 @@ namespace PY {
 
 class Config;
 
-class SpecialPhraseTable;
-
 class LibPinyinPinyinEditor : public LibPinyinPhoneticEditor {
 public:
     LibPinyinPinyinEditor (PinyinProperties & props, Config & config);