Merge branch 'wip' of oss.readytalk.com:/var/local/git/avian into wip

This commit is contained in:
jet 2010-01-11 10:39:37 -07:00
commit b33219cc7d
4 changed files with 32 additions and 15 deletions

View File

@ -452,11 +452,17 @@ Java_java_io_File_readDir(JNIEnv* e, jclass, jlong handle)
{ {
Directory* d = reinterpret_cast<Directory*>(handle); Directory* d = reinterpret_cast<Directory*>(handle);
const char* s = d->next(); while (true) {
if (s) { const char* s = d->next();
return e->NewStringUTF(s); if (s) {
} else { if (strcmp(s, ".") == 0 || strcmp(s, "..") == 0) {
return 0; // skip . or .. and try again
} else {
return e->NewStringUTF(s);
}
} else {
return 0;
}
} }
} }
@ -487,11 +493,18 @@ Java_java_io_File_readDir(JNIEnv* e, jclass, jlong handle)
struct dirent * directoryEntry; struct dirent * directoryEntry;
if (handle!=0) { if (handle!=0) {
directoryEntry = readdir(reinterpret_cast<DIR*>(handle)); while (true) {
if (directoryEntry == NULL) { directoryEntry = readdir(reinterpret_cast<DIR*>(handle));
return NULL; if (directoryEntry == NULL) {
return NULL;
} else if (strcmp(directoryEntry->d_name, ".") == 0
|| strcmp(directoryEntry->d_name, "..") == 0)
{
// skip . or .. and try again
} else {
return e->NewStringUTF(directoryEntry->d_name);
}
} }
return e->NewStringUTF(directoryEntry->d_name);
} }
return NULL; return NULL;
} }

View File

@ -22,7 +22,7 @@ public class BufferedInputStream extends InputStream {
} }
public BufferedInputStream(InputStream in) { public BufferedInputStream(InputStream in) {
this(in, 32); this(in, 4096);
} }
private void fill() throws IOException { private void fill() throws IOException {

View File

@ -55,7 +55,9 @@ public class FileInputStream extends InputStream {
} }
public void close() throws IOException { public void close() throws IOException {
close(fd); if (fd != -1) {
fd = -1; close(fd);
fd = -1;
}
} }
} }

View File

@ -55,7 +55,9 @@ public class FileOutputStream extends OutputStream {
} }
public void close() throws IOException { public void close() throws IOException {
close(fd); if (fd != -1) {
fd = -1; close(fd);
fd = -1;
}
} }
} }