kwo pushed a commit to branch master.

http://git.enlightenment.org/legacy/imlib2.git/commit/?id=57b4b12c7e8d45a4cdd7deb0da4dcdcd9b048a33

commit 57b4b12c7e8d45a4cdd7deb0da4dcdcd9b048a33
Author: Kim Woelders <[email protected]>
Date:   Tue Nov 12 16:26:44 2019 +0100

    Simplify __imlib_FileExtension()
    
    __imlib_FileExtension() has (presumably by mistake) never used the
    "real" file name to determine the extension so let's just drop all the
    strdup'ing and return a pointer into the file string.
---
 src/lib/file.c  | 22 ++++++----------------
 src/lib/file.h  |  2 +-
 src/lib/image.c |  7 +------
 3 files changed, 8 insertions(+), 23 deletions(-)

diff --git a/src/lib/file.c b/src/lib/file.c
index 4e61752..aa9fb05 100644
--- a/src/lib/file.c
+++ b/src/lib/file.c
@@ -92,26 +92,16 @@ __imlib_FileRealFile(const char *file)
    return newfile;
 }
 
-char               *
+const char         *
 __imlib_FileExtension(const char *file)
 {
-   char               *p;
-   char               *fl;
+   const char         *p;
 
-   fl = __imlib_FileRealFile(file);
-   if (!fl)
-      return strdup("");
    p = strrchr(file, '.');
-   if (p)
-     {
-        char               *ret;
-
-        ret = strdup(p + 1);
-        free(fl);
-        return ret;
-     }
-   free(fl);
-   return strdup("");
+   if (!p)
+      return NULL;
+   p++;
+   return *p != '\0' ? p : NULL;
 }
 
 int
diff --git a/src/lib/file.h b/src/lib/file.h
index bff573b..ba34b51 100644
--- a/src/lib/file.h
+++ b/src/lib/file.h
@@ -5,7 +5,7 @@
 
 char               *__imlib_FileKey(const char *file);
 char               *__imlib_FileRealFile(const char *file);
-char               *__imlib_FileExtension(const char *file);
+const char         *__imlib_FileExtension(const char *file);
 int                 __imlib_FileExists(const char *s);
 int                 __imlib_FileIsFile(const char *s);
 int                 __imlib_FileIsDir(const char *s);
diff --git a/src/lib/image.c b/src/lib/image.c
index 28eee8f..d9a8af6 100644
--- a/src/lib/image.c
+++ b/src/lib/image.c
@@ -788,14 +788,9 @@ __imlib_FindBestLoaderForFormat(const char *format, int 
for_save)
 __EXPORT__ ImlibLoader *
 __imlib_FindBestLoaderForFile(const char *file, int for_save)
 {
-   char               *extension;
    ImlibLoader        *l;
 
-   extension = __imlib_FileExtension(file);
-
-   l = __imlib_FindBestLoaderForFormat(extension, for_save);
-
-   free(extension);
+   l = __imlib_FindBestLoaderForFormat(__imlib_FileExtension(file), for_save);
 
    return l;
 }

-- 


Reply via email to