Avoiding access in NULL hash and little fixes.
authorsachiel <sachiel@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 31 Aug 2010 19:32:08 +0000 (19:32 +0000)
committersachiel <sachiel@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Tue, 31 Aug 2010 19:32:08 +0000 (19:32 +0000)
If there isn't a font, the hash is NULL.
So, just check before to avoid problems.
Moreover, removing one line that had been lost in code generate of
fonts parts and moving it declaration for the right context

By: Fabiano Fidencio <fidencio@profusion.mobi>

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/edje@51786 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/edje_edit.c

index 2d5ff19..8adfd8e 100644 (file)
@@ -6051,7 +6051,6 @@ _edje_generate_source(Evas_Object *obj)
    Eina_Strbuf *buf;
 
    Eina_List *l, *ll;
-   Eina_Iterator *it;
    Edje_Font_Directory_Entry *fnt;
 
    char *entry;
@@ -6101,23 +6100,28 @@ _edje_generate_source(Evas_Object *obj)
      }
 
    /* Fonts */
-   it = eina_hash_iterator_data_new(ed->file->fonts);
-   if (it)
+   if (ed->file->fonts)
      {
-        BUF_APPEND(I0"fonts {\n");
+        Eina_Iterator *it;
 
-        EINA_ITERATOR_FOREACH(it, fnt)
-           BUF_APPENDF(I1"font: \"%s\" \"%s\";\n", fnt->file,
-                       fnt->entry);
+        it = eina_hash_iterator_data_new(ed->file->fonts);
+        if (it)
+          {
+             BUF_APPEND(I0"fonts {\n");
 
-        BUF_APPEND(I0"}\n\n");
-        eina_list_free(ll);
+             EINA_ITERATOR_FOREACH(it, fnt)
+                BUF_APPENDF(I1"font: \"%s\" \"%s\";\n", fnt->file,
+                            fnt->entry);
 
-        if (!ret)
-          {
-             ERR("Generating EDC for Fonts");
-             eina_strbuf_free(buf);
-             return NULL;
+             BUF_APPEND(I0"}\n\n");
+             eina_iterator_free(it);
+
+             if (!ret)
+               {
+                  ERR("Generating EDC for Fonts");
+                  eina_strbuf_free(buf);
+                  return NULL;
+               }
           }
      }