Skip to content

Commit 7c744ff

Browse files
committed
java: only native functions for speed/simplicity
1 parent dafbbe2 commit 7c744ff

File tree

3 files changed

+12
-18
lines changed

3 files changed

+12
-18
lines changed

+stdlib/+java/get_owner.m

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,16 @@
1212
% https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/nio/file/LinkOption.html
1313

1414
n = "";
15-
if stdlib.strempty(file), return, end
15+
if stdlib.strempty(file)
16+
return
17+
end
1618

17-
file = stdlib.absolute(file);
1819
% Java 1.8 benefits from absolute.
1920
% We only saw this issue with R2025a on windows-2025 GA runner image.
21+
opt = java.nio.file.LinkOption.values();
2022

2123
try %#ok<TRYNC>
22-
opt = java.nio.file.LinkOption.values();
23-
n = string(java.nio.file.Files.getOwner(javaPathObject(file), opt));
24+
n = string(java.nio.file.Files.getOwner(javaAbsolutePath(file), opt));
2425
end
2526

2627
end

+stdlib/+java/is_symlink.m

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,5 @@
11
function ok = is_symlink(file)
2-
arguments
3-
file (1,1) string
4-
end
52

6-
ok = java.nio.file.Files.isSymbolicLink(javaPathObject(stdlib.absolute(file)));
3+
ok = java.nio.file.Files.isSymbolicLink(javaAbsolutePath(file));
74

85
end

+stdlib/+java/read_symlink.m

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,13 @@
22
% empty if no symlinks
33

44
function r = read_symlink(file)
5-
arguments
6-
file (1,1) string
7-
end
85

9-
if stdlib.is_symlink(file)
10-
% must be absolute path
11-
% must not be .canonical or symlink is gobbled!
12-
r = stdlib.absolute(file);
13-
% https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/nio/file/Files.html#readSymbolicLink(java.nio.file.Path)
14-
r = string(java.nio.file.Files.readSymbolicLink(javaPathObject(r)));
15-
else
6+
% must be absolute path
7+
% must not be .canonical or symlink is gobbled!
8+
% https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/nio/file/Files.html#readSymbolicLink(java.nio.file.Path)
9+
try
10+
r = string(java.nio.file.Files.readSymbolicLink(javaAbsolutePath(file)));
11+
catch
1612
r = "";
1713
end
1814

0 commit comments

Comments
 (0)