Changeset 60668 in webkit


Ignore:
Timestamp:
Jun 4, 2010 2:42:41 AM (14 years ago)
Author:
eric@webkit.org
Message:

2010-06-04 Kwang Yul Seo <skyul@company100.net>

Reviewed by Kent Tamura.

Change filenameFromString to return CString
https://bugs.webkit.org/show_bug.cgi?id=39494

filenameFromString returns a newly allocated string and the caller must
free the string. GTK and EFL ports use g_free while all others ports use
fastFree. This is confusing because the same function behaves
differently with respect to ports. Change filenameFromString to return
CString.

  • platform/FileSystem.cpp: (WebCore::filenameFromString):
  • platform/FileSystem.h:
  • platform/efl/FileSystemEfl.cpp: (WebCore::filenameFromString):
  • platform/gtk/FileChooserGtk.cpp: (WebCore::FileChooser::basenameForWidth):
  • platform/gtk/FileSystemGtk.cpp: (WebCore::filenameFromString): (WebCore::filenameForDisplay): (WebCore::fileExists): (WebCore::deleteFile): (WebCore::deleteEmptyDirectory): (WebCore::getFileSize): (WebCore::getFileModificationTime): (WebCore::makeAllDirectories): (WebCore::pathGetFileName): (WebCore::directoryName): (WebCore::listDirectory):
  • platform/gtk/SharedBufferGtk.cpp: (WebCore::SharedBuffer::createWithContentsOfFile):
  • platform/network/soup/ResourceHandleSoup.cpp: (WebCore::startHttp):
  • platform/posix/SharedBufferPOSIX.cpp: (WebCore::SharedBuffer::createWithContentsOfFile):
Location:
trunk/WebCore
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/WebCore/ChangeLog

    r60665 r60668  
     12010-06-04  Kwang Yul Seo  <skyul@company100.net>
     2
     3        Reviewed by Kent Tamura.
     4
     5        Change filenameFromString to return CString
     6        https://bugs.webkit.org/show_bug.cgi?id=39494
     7
     8        filenameFromString returns a newly allocated string and the caller must
     9        free the string. GTK and EFL ports use g_free while all others ports use
     10        fastFree. This is confusing because the same function behaves
     11        differently with respect to ports. Change filenameFromString to return
     12        CString.
     13
     14        * platform/FileSystem.cpp:
     15        (WebCore::filenameFromString):
     16        * platform/FileSystem.h:
     17        * platform/efl/FileSystemEfl.cpp:
     18        (WebCore::filenameFromString):
     19        * platform/gtk/FileChooserGtk.cpp:
     20        (WebCore::FileChooser::basenameForWidth):
     21        * platform/gtk/FileSystemGtk.cpp:
     22        (WebCore::filenameFromString):
     23        (WebCore::filenameForDisplay):
     24        (WebCore::fileExists):
     25        (WebCore::deleteFile):
     26        (WebCore::deleteEmptyDirectory):
     27        (WebCore::getFileSize):
     28        (WebCore::getFileModificationTime):
     29        (WebCore::makeAllDirectories):
     30        (WebCore::pathGetFileName):
     31        (WebCore::directoryName):
     32        (WebCore::listDirectory):
     33        * platform/gtk/SharedBufferGtk.cpp:
     34        (WebCore::SharedBuffer::createWithContentsOfFile):
     35        * platform/network/soup/ResourceHandleSoup.cpp:
     36        (WebCore::startHttp):
     37        * platform/posix/SharedBufferPOSIX.cpp:
     38        (WebCore::SharedBuffer::createWithContentsOfFile):
     39
    1402010-06-04  No'am Rosenthal  <noam.rosenthal@nokia.com>
    241
  • trunk/WebCore/platform/FileSystem.cpp

    r59894 r60668  
    3232
    3333#if !PLATFORM(GTK) && !PLATFORM(EFL)
    34 char* filenameFromString(const String& string)
     34CString filenameFromString(const String& string)
    3535{
    36     return fastStrDup(string.utf8().data());
     36    return string.utf8();
    3737}
    3838#endif
  • trunk/WebCore/platform/FileSystem.h

    r59894 r60668  
    173173#endif
    174174
    175 char* filenameFromString(const String&);
     175CString filenameFromString(const String&);
    176176
    177177#if PLATFORM(GTK)
  • trunk/WebCore/platform/efl/FileSystemEfl.cpp

    r57970 r60668  
    5757}
    5858
    59 char* filenameFromString(const String& string)
     59CString filenameFromString(const String& string)
    6060{
    6161// WARNING: this is just used by platform/network/soup, thus must be GLIB!!!
    6262// TODO: move this to CString and use it instead in both, being more standard
    6363#if PLATFORM(WIN_OS)
    64     return g_strdup(string.utf8().data());
     64    return string.utf8();
    6565#else
    66     return g_uri_unescape_string(string.utf8().data(), 0);
     66    char* filename = g_uri_unescape_string(string.utf8().data(), 0);
     67    CString cfilename(filename);
     68    g_free(filename);
     69    return cfilename;
    6770#endif
    6871}
  • trunk/WebCore/platform/gtk/FileChooserGtk.cpp

    r56825 r60668  
    5858
    5959    if (m_filenames.size() == 1) {
    60         gchar* systemFilename = filenameFromString(m_filenames[0]);
    61         gchar* systemBasename = g_path_get_basename(systemFilename);
    62         g_free(systemFilename);
     60        CString systemFilename = filenameFromString(m_filenames[0]);
     61        gchar* systemBasename = g_path_get_basename(systemFilename.data());
    6362        stringByAdoptingFileSystemRepresentation(systemBasename, string);
    6463    } else if (m_filenames.size() > 1)
  • trunk/WebCore/platform/gtk/FileSystemGtk.cpp

    r60286 r60668  
    5353}
    5454
    55 char* filenameFromString(const String& string)
     55CString filenameFromString(const String& string)
    5656{
    5757#if OS(WINDOWS)
    58     return g_strdup(string.utf8().data());
     58    return string.utf8();
    5959#else
    60     return g_uri_unescape_string(string.utf8().data(), 0);
     60    char* filename = g_uri_unescape_string(string.utf8().data(), 0);
     61    CString cfilename(filename);
     62    g_free(filename);
     63    return cfilename;
    6164#endif
    6265}
     
    6871    return string;
    6972#else
    70     gchar* filename = filenameFromString(string);
    71     gchar* display = g_filename_to_utf8(filename, 0, 0, 0, 0);
    72     g_free(filename);
     73    CString filename = filenameFromString(string);
     74    gchar* display = g_filename_to_utf8(filename.data(), 0, 0, 0, 0);
    7375    if (!display)
    7476        return string;
     
    8486{
    8587    bool result = false;
    86     gchar* filename = filenameFromString(path);
    87 
    88     if (filename) {
    89         result = g_file_test(filename, G_FILE_TEST_EXISTS);
    90         g_free(filename);
    91     }
     88    CString filename = filenameFromString(path);
     89
     90    if (!filename.isNull())
     91        result = g_file_test(filename.data(), G_FILE_TEST_EXISTS);
    9292
    9393    return result;
     
    9797{
    9898    bool result = false;
    99     gchar* filename = filenameFromString(path);
    100 
    101     if (filename) {
    102         result = g_remove(filename) == 0;
    103         g_free(filename);
    104     }
     99    CString filename = filenameFromString(path);
     100
     101    if (!filename.isNull())
     102        result = g_remove(filename.data()) == 0;
    105103
    106104    return result;
     
    110108{
    111109    bool result = false;
    112     gchar* filename = filenameFromString(path);
    113 
    114     if (filename) {
    115         result = g_rmdir(filename) == 0;
    116         g_free(filename);
    117     }
     110    CString filename = filenameFromString(path);
     111
     112    if (!filename.isNull())
     113        result = g_rmdir(filename.data()) == 0;
    118114
    119115    return result;
     
    122118bool getFileSize(const String& path, long long& resultSize)
    123119{
    124     gchar* filename = filenameFromString(path);
    125     if (!filename)
     120    CString filename = filenameFromString(path);
     121    if (filename.isNull())
    126122        return false;
    127123
    128124    struct stat statResult;
    129     gint result = g_stat(filename, &statResult);
    130     g_free(filename);
     125    gint result = g_stat(filename.data(), &statResult);
    131126    if (result != 0)
    132127        return false;
     
    138133bool getFileModificationTime(const String& path, time_t& modifiedTime)
    139134{
    140     gchar* filename = filenameFromString(path);
    141     if (!filename)
     135    CString filename = filenameFromString(path);
     136    if (filename.isNull())
    142137        return false;
    143138
    144139    struct stat statResult;
    145     gint result = g_stat(filename, &statResult);
    146     g_free(filename);
     140    gint result = g_stat(filename.data(), &statResult);
    147141    if (result != 0)
    148142        return false;
     
    163157bool makeAllDirectories(const String& path)
    164158{
    165     gchar* filename = filenameFromString(path);
    166     if (!filename)
    167         return false;
    168 
    169     gint result = g_mkdir_with_parents(filename, S_IRWXU);
    170     g_free(filename);
     159    CString filename = filenameFromString(path);
     160    if (filename.isNull())
     161        return false;
     162
     163    gint result = g_mkdir_with_parents(filename.data(), S_IRWXU);
    171164
    172165    return result == 0;
     
    183176        return pathName;
    184177
    185     char* tmpFilename = filenameFromString(pathName);
    186     char* baseName = g_path_get_basename(tmpFilename);
     178    CString tmpFilename = filenameFromString(pathName);
     179    char* baseName = g_path_get_basename(tmpFilename.data());
    187180    String fileName = String::fromUTF8(baseName);
    188181    g_free(baseName);
    189     g_free(tmpFilename);
    190182
    191183    return fileName;
     
    195187{
    196188    /* No null checking needed */
    197     GOwnPtr<char> tmpFilename(filenameFromString(path));
     189    GOwnPtr<char> tmpFilename(const_cast<char*>(filenameFromString(path).data()));
    198190    GOwnPtr<char> dirname(g_path_get_dirname(tmpFilename.get()));
    199191    return String::fromUTF8(dirname.get());
     
    204196    Vector<String> entries;
    205197
    206     gchar* filename = filenameFromString(path);
    207     GDir* dir = g_dir_open(filename, 0, 0);
     198    CString filename = filenameFromString(path);
     199    GDir* dir = g_dir_open(filename.data(), 0, 0);
    208200    if (!dir)
    209201        return entries;
     
    214206            continue;
    215207
    216         gchar* entry = g_build_filename(filename, name, NULL);
     208        gchar* entry = g_build_filename(filename.data(), name, NULL);
    217209        entries.append(filenameToString(entry));
    218210        g_free(entry);
    219211    }
    220212    g_dir_close(dir);
    221     g_free(filename);
    222213
    223214    return entries;
  • trunk/WebCore/platform/gtk/SharedBufferGtk.cpp

    r56825 r60668  
    3333        return 0;
    3434
    35     gchar* filename = filenameFromString(filePath);
     35    CString filename = filenameFromString(filePath);
    3636    gchar* contents;
    3737    gsize size;
    3838    GError* error = 0;
    39     if (!g_file_get_contents(filename, &contents, &size, &error)) {
     39    if (!g_file_get_contents(filename.data(), &contents, &size, &error)) {
    4040        LOG_ERROR("Failed to fully read contents of file %s - %s", filenameForDisplay(filePath).utf8().data(), error->message);
    4141        g_error_free(error);
    42         g_free(filename);
    4342        return 0;
    4443    }
    4544
    4645    RefPtr<SharedBuffer> result = SharedBuffer::create(contents, size);
    47     g_free(filename);
    4846    g_free(contents);
    4947
  • trunk/WebCore/platform/network/soup/ResourceHandleSoup.cpp

    r59157 r60668  
    534534                     */
    535535                    GError* error = 0;
    536                     gchar* fileName = filenameFromString(element.m_filename);
    537                     GMappedFile* fileMapping = g_mapped_file_new(fileName, false, &error);
    538 
    539                     g_free(fileName);
     536                    CString fileName = filenameFromString(element.m_filename);
     537                    GMappedFile* fileMapping = g_mapped_file_new(fileName.data(), false, &error);
    540538
    541539                    if (error) {
  • trunk/WebCore/platform/posix/SharedBufferPOSIX.cpp

    r59890 r60668  
    4141        return 0;
    4242
    43     char* filename = filenameFromString(filePath);
    44     int fd = open(filename, O_RDONLY);
    45     fastFree(filename);
     43    CString filename = filenameFromString(filePath);
     44    int fd = open(filename.data(), O_RDONLY);
    4645    if (fd == -1)
    4746        return 0;
Note: See TracChangeset for help on using the changeset viewer.