mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-13 05:15:45 +00:00
Read-only Git mirror of the Mercurial gecko repositories at https://hg.mozilla.org. How to contribute: https://firefox-source-docs.mozilla.org/contributing/contribution_quickref.html
a791fb2253
plus a bunch of other fixes and cleanups: - Fix comment misstatements of fact in nsIFile.idl, improve style slightly. - Fix typo in comment in nsILocalFile.idl. - Avoid gratuitous nsCString and nsXPIDLCString copy-constructions, which entail malloc'ing, in nsLocalFileUnix.cpp's CopyTo and GetParent methods. But do use nsXPIDLCString instead of raw nsMemory::Alloc/Free. - Get rid of unnecessary mLL_II2L and mLL_L2II macros, use "prlong.h" API only. Also use the LL_* macros consistently in case a Unix lacking long long type support wants to use this code. * BTW, the "Date" methods should be renamed to use "Time" instead -- after all PRTime is the type, and traditionally "time" refers to the time-number, a scalar independent of one's position on the surface of the earth, while "date" refers to a struct full of locale-specific information derived from time and some "environment" variables such as DST. Can we rename these nsIFile methods before Mozilla 0.9 / Netscape 6? - Use CHECK_mPath consistently and first, before any assertions relating to arguments (which logically come after the 'this' parameter CHECK_mPath is making assertions about). - Use nsCOMPtr for singly-inheriting implementations of XPCOM interfaces, to avoid scary-when-scaled 0-refcnt instances from being handled (these all got a ref via QI or equivalent soon enough, but you never know). This also removed some naked deletes. - Canonize all paths copied into mPath to lack trailing slashes, so we don't need to strip trailing slashes elsewhere, in higher-frequency methods (you set path less often than you get it or a substring of it). - ssize_t for strlen return values. - Since shaver used a function pointer to consolidate creat/mkdir logic, but didn't fold the necessary close of the new fd returned by non-failing creat into the pointed-at function, I did that. - AppendRelativePath forbids .. as a component (bounded by / or beginning or end of string on either side), not just in the middle of fragment (so that foo..bar is not an illegal relative pathname -- it should not be). BTW, what the heck is the difference between NS_ERROR_FILE_UNRECOGNIZED_PATH and ...INVALID_PATH? - SetLeafName was overallocating the new pathname buffer by failing to subtract the old leafname's length. - CopyTo was failing to return an NSRESULT_FOR_ERRNO(), it just called that macro on a line by itself -- eek! It also contained redundant if (newFD == nsnull) {...} cleanup code, it did a useless PR_GetFileInfo call, and it leaked FDs on read or write error. - Implemented CopyToFollowingLinks as a forwarded call to CopyTo, Unix does not support "copying" a symlink via normal file i/o. Should we instead lstat in CopyTo and if a link is the source of the copy, do readlink and then symlink? - Fixed the readlink method (GetTarget) to null-terminate the link string in the out parameter (readlink does not do that for you). - Lots of little nsnull vs. NULL vs. 0, == and != applied to boolean or null literals, white-space, indentation, bracing, comment, and sloppy code order (e.g., declaring an initialized variable that's not used till after early returns) fixes. Also invert some return logic so that NS_OK is the normal, least indented, final return. |
||
---|---|---|
apache/gzip/src | ||
build | ||
calendar | ||
caps | ||
cck | ||
chrome | ||
cmd | ||
config | ||
content | ||
db | ||
dbm | ||
directory | ||
docshell | ||
dom | ||
editor | ||
ef | ||
embedding | ||
expat | ||
extensions | ||
gc/boehm | ||
gconfig | ||
gfx | ||
grendel | ||
htmlparser | ||
include | ||
intl | ||
java | ||
jpeg | ||
js | ||
js2 | ||
l10n | ||
layout | ||
lib | ||
mailnews | ||
modules | ||
msgsdk | ||
mstone | ||
netwerk | ||
network/protocol/http | ||
nsprpub | ||
nunet | ||
parser | ||
plugin/oji/MRJ | ||
privacy | ||
profile | ||
rdf | ||
README/mozilla | ||
security | ||
silentdl | ||
string | ||
suite | ||
sun-java | ||
themes | ||
timer | ||
tools | ||
tripledb | ||
uriloader | ||
view | ||
wallet | ||
webshell | ||
webtools | ||
widget | ||
xpcom | ||
xpfc | ||
xpfe | ||
xpinstall | ||
.cvsignore | ||
aclocal.m4 | ||
allmakefiles.sh | ||
client.mak | ||
client.mk | ||
configure | ||
configure.in | ||
LEGAL | ||
LICENSE | ||
Makefile.in | ||
makefile.win | ||
nglayout.mac | ||
nglayout.mk | ||
trex.mak | ||
trex.mk |