Changeset 60668 in webkit
- Timestamp:
- Jun 4, 2010 2:42:41 AM (14 years ago)
- Location:
- trunk/WebCore
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/WebCore/ChangeLog
r60665 r60668 1 2010-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 1 40 2010-06-04 No'am Rosenthal <noam.rosenthal@nokia.com> 2 41 -
trunk/WebCore/platform/FileSystem.cpp
r59894 r60668 32 32 33 33 #if !PLATFORM(GTK) && !PLATFORM(EFL) 34 char*filenameFromString(const String& string)34 CString filenameFromString(const String& string) 35 35 { 36 return fastStrDup(string.utf8().data());36 return string.utf8(); 37 37 } 38 38 #endif -
trunk/WebCore/platform/FileSystem.h
r59894 r60668 173 173 #endif 174 174 175 char*filenameFromString(const String&);175 CString filenameFromString(const String&); 176 176 177 177 #if PLATFORM(GTK) -
trunk/WebCore/platform/efl/FileSystemEfl.cpp
r57970 r60668 57 57 } 58 58 59 char*filenameFromString(const String& string)59 CString filenameFromString(const String& string) 60 60 { 61 61 // WARNING: this is just used by platform/network/soup, thus must be GLIB!!! 62 62 // TODO: move this to CString and use it instead in both, being more standard 63 63 #if PLATFORM(WIN_OS) 64 return g_strdup(string.utf8().data());64 return string.utf8(); 65 65 #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; 67 70 #endif 68 71 } -
trunk/WebCore/platform/gtk/FileChooserGtk.cpp
r56825 r60668 58 58 59 59 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()); 63 62 stringByAdoptingFileSystemRepresentation(systemBasename, string); 64 63 } else if (m_filenames.size() > 1) -
trunk/WebCore/platform/gtk/FileSystemGtk.cpp
r60286 r60668 53 53 } 54 54 55 char*filenameFromString(const String& string)55 CString filenameFromString(const String& string) 56 56 { 57 57 #if OS(WINDOWS) 58 return g_strdup(string.utf8().data());58 return string.utf8(); 59 59 #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; 61 64 #endif 62 65 } … … 68 71 return string; 69 72 #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); 73 75 if (!display) 74 76 return string; … … 84 86 { 85 87 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); 92 92 93 93 return result; … … 97 97 { 98 98 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; 105 103 106 104 return result; … … 110 108 { 111 109 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; 118 114 119 115 return result; … … 122 118 bool getFileSize(const String& path, long long& resultSize) 123 119 { 124 gchar*filename = filenameFromString(path);125 if ( !filename)120 CString filename = filenameFromString(path); 121 if (filename.isNull()) 126 122 return false; 127 123 128 124 struct stat statResult; 129 gint result = g_stat(filename, &statResult); 130 g_free(filename); 125 gint result = g_stat(filename.data(), &statResult); 131 126 if (result != 0) 132 127 return false; … … 138 133 bool getFileModificationTime(const String& path, time_t& modifiedTime) 139 134 { 140 gchar*filename = filenameFromString(path);141 if ( !filename)135 CString filename = filenameFromString(path); 136 if (filename.isNull()) 142 137 return false; 143 138 144 139 struct stat statResult; 145 gint result = g_stat(filename, &statResult); 146 g_free(filename); 140 gint result = g_stat(filename.data(), &statResult); 147 141 if (result != 0) 148 142 return false; … … 163 157 bool makeAllDirectories(const String& path) 164 158 { 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); 171 164 172 165 return result == 0; … … 183 176 return pathName; 184 177 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()); 187 180 String fileName = String::fromUTF8(baseName); 188 181 g_free(baseName); 189 g_free(tmpFilename);190 182 191 183 return fileName; … … 195 187 { 196 188 /* No null checking needed */ 197 GOwnPtr<char> tmpFilename( filenameFromString(path));189 GOwnPtr<char> tmpFilename(const_cast<char*>(filenameFromString(path).data())); 198 190 GOwnPtr<char> dirname(g_path_get_dirname(tmpFilename.get())); 199 191 return String::fromUTF8(dirname.get()); … … 204 196 Vector<String> entries; 205 197 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); 208 200 if (!dir) 209 201 return entries; … … 214 206 continue; 215 207 216 gchar* entry = g_build_filename(filename , name, NULL);208 gchar* entry = g_build_filename(filename.data(), name, NULL); 217 209 entries.append(filenameToString(entry)); 218 210 g_free(entry); 219 211 } 220 212 g_dir_close(dir); 221 g_free(filename);222 213 223 214 return entries; -
trunk/WebCore/platform/gtk/SharedBufferGtk.cpp
r56825 r60668 33 33 return 0; 34 34 35 gchar*filename = filenameFromString(filePath);35 CString filename = filenameFromString(filePath); 36 36 gchar* contents; 37 37 gsize size; 38 38 GError* error = 0; 39 if (!g_file_get_contents(filename , &contents, &size, &error)) {39 if (!g_file_get_contents(filename.data(), &contents, &size, &error)) { 40 40 LOG_ERROR("Failed to fully read contents of file %s - %s", filenameForDisplay(filePath).utf8().data(), error->message); 41 41 g_error_free(error); 42 g_free(filename);43 42 return 0; 44 43 } 45 44 46 45 RefPtr<SharedBuffer> result = SharedBuffer::create(contents, size); 47 g_free(filename);48 46 g_free(contents); 49 47 -
trunk/WebCore/platform/network/soup/ResourceHandleSoup.cpp
r59157 r60668 534 534 */ 535 535 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); 540 538 541 539 if (error) { -
trunk/WebCore/platform/posix/SharedBufferPOSIX.cpp
r59890 r60668 41 41 return 0; 42 42 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); 46 45 if (fd == -1) 47 46 return 0;
Note: See TracChangeset
for help on using the changeset viewer.