Don't leak, and be consistent with return values.
authorsachiel <sachiel@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 16 Apr 2009 04:52:33 +0000 (04:52 +0000)
committersachiel <sachiel@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 16 Apr 2009 04:52:33 +0000 (04:52 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@40101 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/engines/common/evas_font_draw.c
src/lib/engines/common/evas_intl_utils.c

index 0c833ef..bc8c4b3 100644 (file)
@@ -388,7 +388,7 @@ evas_common_font_draw_internal(RGBA_Image *dst, RGBA_Draw_Context *dc, RGBA_Font
        prev_index = index;
      }
 #ifdef INTERNATIONAL_SUPPORT
-   if (bidi_err < 0) {
+   if (bidi_err >= 0) {
        free(level_list);
        free(text);
    }
index 6ad1b45..6fcc099 100644 (file)
@@ -29,8 +29,11 @@ evas_intl_utf8_to_visual(const char *text, int *ret_len, FriBidiCharType *direct
 
        /* if there's nothing to do, return text
         * one char draws are quite common */
-       if (len <= 1)
-               return text;
+       if (len <= 1) {
+               *ret_len = len;
+               *embedding_level_list = NULL;
+               return strdup(text);
+       }
        
        byte_len = strlen(text); /* we need the actual number of bytes, not number of chars */