edje_codegen: Fixing a small problem with programs
authorceolin <ceolin>
Tue, 2 Oct 2012 17:37:48 +0000 (17:37 +0000)
committerceolin <ceolin@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 2 Oct 2012 17:37:48 +0000 (17:37 +0000)
Generating code even when there is no signal and/or source
in a program with SIGNAL_EMIT action.

git-svn-id: http://svn.enlightenment.org/svn/e/trunk/edje@77330 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/edje_codegen.c

index 61b01a3..2504b97 100644 (file)
@@ -950,10 +950,31 @@ _parse_programs(Evas_Object *ed)
             continue;
          }
 
+       description = edje_edit_program_api_description_get(ed, name);
+       type = edje_edit_program_action_get(ed, name);
+       if (type == EDJE_ACTION_TYPE_SIGNAL_EMIT)
+         {
+            const char *str, *str2;
+            str = edje_edit_program_state_get(ed, name);
+            str2 = edje_edit_program_state2_get(ed, name);
+
+            if (!_write_program_add(apiname, str2, str, description))
+              {
+                 ret = EINA_FALSE;
+                 edje_edit_string_free(str);
+                 edje_edit_string_free(str2);
+                 break;
+              }
+
+            edje_edit_string_free(str);
+            edje_edit_string_free(str2);
+         }
+
        signal = edje_edit_program_signal_get(ed, name);
        if (!signal)
          {
             free(apiname);
+            edje_edit_string_free(description);
             continue;
          }
 
@@ -962,35 +983,16 @@ _parse_programs(Evas_Object *ed)
          {
             free(apiname);
             edje_edit_string_free(signal);
+            edje_edit_string_free(description);
             continue;
          }
 
-       description = edje_edit_program_api_description_get(ed, name);
        if (!_write_program_emit(apiname, source, signal, description))
          {
             ret = EINA_FALSE;
             break;
          }
 
-       type = edje_edit_program_action_get(ed, name);
-       if (type == EDJE_ACTION_TYPE_SIGNAL_EMIT)
-         {
-            const char *str, *str2;
-            str = edje_edit_program_state_get(ed, name);
-            str2 = edje_edit_program_state2_get(ed, name);
-
-            if (!_write_program_add(apiname, str2, str, description))
-              {
-                 ret = EINA_FALSE;
-                 edje_edit_string_free(str);
-                 edje_edit_string_free(str2);
-                 break;
-              }
-
-            edje_edit_string_free(str);
-            edje_edit_string_free(str2);
-         }
-
        edje_edit_string_free(description);
        edje_edit_string_free(signal);
        edje_edit_string_free(source);