Fix defects detected by static analysis tool 08/169408/1
authorJi-hoon Lee <dalton.lee@samsung.com>
Tue, 6 Feb 2018 09:57:13 +0000 (18:57 +0900)
committerJi-hoon Lee <dalton.lee@samsung.com>
Tue, 6 Feb 2018 09:58:26 +0000 (18:58 +0900)
Change-Id: I0129f33024f991e6205de43eae6308cdada55f38

src/include/languages.h
src/languages.cpp
src/sdk/sdk.cpp

index c09d66f..00190b3 100644 (file)
@@ -96,7 +96,7 @@ typedef struct _LANGUAGE_INFO {
 
 class ISELanguageManager {
 public:
-    sclboolean add_language(LANGUAGE_INFO language);
+    sclboolean add_language(LANGUAGE_INFO &language);
 
     sclboolean select_language(const sclchar *name, sclboolean temporarily = FALSE);
     sclboolean select_current_language();
index a45213f..ff7cc12 100644 (file)
@@ -48,12 +48,13 @@ private:
 sclboolean
 ISELanguageManager::set_all_languages_enabled(sclboolean enabled)
 {
-    sclboolean ret = TRUE;
+    sclboolean ret = FALSE;
 
     vector<LANGUAGE_INFO>::iterator iter;
     for (iter = _language_vector.begin(); iter != _language_vector.end(); ++iter) {
             iter->enabled = enabled;
             iter->enabled_temporarily = FALSE;
+            ret = TRUE;
     }
 
     return ret;
@@ -61,7 +62,7 @@ ISELanguageManager::set_all_languages_enabled(sclboolean enabled)
 
 /* Each language-specific source files should put their callback information in the following vectors */
 sclboolean
-ISELanguageManager::add_language(LANGUAGE_INFO language)
+ISELanguageManager::add_language(LANGUAGE_INFO &language)
 {
     int language_id = -1;
 
index d813d9e..de02029 100644 (file)
@@ -270,7 +270,7 @@ SCLEventReturnType CSDKISE::on_event_key_clicked(SclUIEventDesc event_desc)
             break;
         case KEY_TYPE_STRING:
             ime_flush_imengine();
-            if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
+            if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
                 process_korean_automata(false, SIPKEY_ERROR);
             }
             if (event_desc.key_modifier != KEY_MODIFIER_MULTITAP_START &&
@@ -281,7 +281,7 @@ SCLEventReturnType CSDKISE::on_event_key_clicked(SclUIEventDesc event_desc)
         case KEY_TYPE_MODECHANGE:
             {
                 ime_flush_imengine();
-                if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
+                if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
                     process_korean_automata(false, SIPKEY_ERROR);
                 }
                 flush_imengine(cur_lang);
@@ -331,7 +331,7 @@ SCLEventReturnType CSDKISE::on_event_key_clicked(SclUIEventDesc event_desc)
                     }
                 }
 
-                if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
+                if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
                     if (event_desc.key_event == MVK_BackSpace) {
                         if (process_korean_automata(false, SIPKEY_BACKSPACE))
                             ret = SCL_EVENT_DONE;
@@ -555,7 +555,8 @@ sclboolean CSDKISE::flush_imengine(const sclchar *language)
                 bRet = true;
             }
         }
-        if (strcmp(_language_manager.get_current_language(), "Korean") == 0) {
+        const char *cur_lang = _language_manager.get_current_language();
+        if (cur_lang && strcmp(cur_lang, "Korean") == 0) {
             process_korean_automata(false, SIPKEY_ERROR, true);
         }
     }