Skip to content

Commit 4ec8e77

Browse files
committed
Avoiding extra byte copy inside readFileInternal
Signed-off-by: doxlik <pirozhokkokosovich@gmail.com>
1 parent 952cce3 commit 4ec8e77

File tree

1 file changed

+11
-33
lines changed

1 file changed

+11
-33
lines changed

vertx-core/src/main/java/io/vertx/core/file/impl/FileSystemImpl.java

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -11,53 +11,29 @@
1111

1212
package io.vertx.core.file.impl;
1313

14+
import io.netty.buffer.ByteBuf;
15+
import io.netty.buffer.Unpooled;
1416
import io.vertx.codegen.annotations.Nullable;
1517
import io.vertx.core.Future;
1618
import io.vertx.core.buffer.Buffer;
17-
import io.vertx.core.file.AsyncFile;
18-
import io.vertx.core.file.CopyOptions;
19-
import io.vertx.core.file.FileProps;
19+
import io.vertx.core.buffer.impl.BufferImpl;
20+
import io.vertx.core.file.*;
2021
import io.vertx.core.file.FileSystem;
2122
import io.vertx.core.file.FileSystemException;
22-
import io.vertx.core.file.FileSystemProps;
23-
import io.vertx.core.file.OpenOptions;
2423
import io.vertx.core.internal.ContextInternal;
2524
import io.vertx.core.internal.VertxInternal;
2625

2726
import java.io.File;
2827
import java.io.FilenameFilter;
2928
import java.io.IOException;
3029
import java.io.RandomAccessFile;
31-
import java.nio.file.CopyOption;
32-
import java.nio.file.FileAlreadyExistsException;
33-
import java.nio.file.FileStore;
34-
import java.nio.file.FileVisitOption;
35-
import java.nio.file.FileVisitResult;
36-
import java.nio.file.Files;
37-
import java.nio.file.LinkOption;
38-
import java.nio.file.Path;
39-
import java.nio.file.Paths;
40-
import java.nio.file.SimpleFileVisitor;
41-
import java.nio.file.StandardCopyOption;
42-
import java.nio.file.attribute.BasicFileAttributes;
43-
import java.nio.file.attribute.FileAttribute;
44-
import java.nio.file.attribute.GroupPrincipal;
45-
import java.nio.file.attribute.PosixFileAttributeView;
46-
import java.nio.file.attribute.PosixFilePermission;
47-
import java.nio.file.attribute.PosixFilePermissions;
48-
import java.nio.file.attribute.UserPrincipal;
49-
import java.nio.file.attribute.UserPrincipalLookupService;
50-
import java.util.ArrayList;
51-
import java.util.EnumSet;
52-
import java.util.HashSet;
53-
import java.util.List;
54-
import java.util.Objects;
55-
import java.util.Set;
30+
import java.nio.file.*;
31+
import java.nio.file.attribute.*;
32+
import java.util.*;
5633
import java.util.concurrent.Callable;
5734
import java.util.regex.Pattern;
5835

5936
/**
60-
*
6137
* This class is thread-safe
6238
*
6339
* @author <a href="http://tfox.org">Tim Fox</a>
@@ -531,7 +507,7 @@ public Void perform() {
531507
raf.setLength(len);
532508
}
533509
} catch (IOException e) {
534-
throw new FileSystemException(getFileAccessErrorMessage("truncate", p) ,e);
510+
throw new FileSystemException(getFileAccessErrorMessage("truncate", p), e);
535511
}
536512
return null;
537513
}
@@ -711,6 +687,7 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IO
711687
Files.delete(file);
712688
return FileVisitResult.CONTINUE;
713689
}
690+
714691
public FileVisitResult postVisitDirectory(Path dir, IOException e) throws IOException {
715692
if (e == null) {
716693
Files.delete(dir);
@@ -876,7 +853,8 @@ public Buffer perform() {
876853
try {
877854
Path target = resolveFile(path).toPath();
878855
byte[] bytes = Files.readAllBytes(target);
879-
return Buffer.buffer(bytes);
856+
ByteBuf bb = Unpooled.wrappedBuffer(bytes);
857+
return new BufferImpl(bb);
880858
} catch (IOException e) {
881859
throw new FileSystemException(getFileAccessErrorMessage("read", path), e);
882860
}

0 commit comments

Comments
 (0)