aboutsummaryrefslogtreecommitdiff
path: root/std
diff options
context:
space:
mode:
authoremekoi <emekankurumeh@outlook.com>2019-05-27 10:12:07 -0500
committeremekoi <emekankurumeh@outlook.com>2019-05-28 10:34:35 -0500
commitb8cd4b18b068d83bd4c2ae44777f60244d8d1853 (patch)
treec91951a315a48a0babac5534645c44000b96e16d /std
parentd1b6f29d225bbedd0afb97fce64f5d042df4d9c6 (diff)
downloadzig-b8cd4b18b068d83bd4c2ae44777f60244d8d1853.tar.gz
zig-b8cd4b18b068d83bd4c2ae44777f60244d8d1853.zip
remove unneed allocator from DynLib
Diffstat (limited to 'std')
-rw-r--r--std/dynamic_library.zig24
1 files changed, 15 insertions, 9 deletions
diff --git a/std/dynamic_library.zig b/std/dynamic_library.zig
index 3ae3b4c66a..db5dffeefd 100644
--- a/std/dynamic_library.zig
+++ b/std/dynamic_library.zig
@@ -104,9 +104,9 @@ pub const LinuxDynLib = struct {
memory: []align(mem.page_size) u8,
/// Trusts the file
- pub fn open(allocator: *mem.Allocator, path: []const u8) !DynLib {
- const fd = try os.open(path, 0, os.O_RDONLY | os.O_CLOEXEC);
- errdefer os.close(fd);
+ pub fn open(path: []const u8) !DynLib {
+ const fd = try std.os.posixOpen(path, 0, linux.O_RDONLY | linux.O_CLOEXEC);
+ errdefer std.os.close(fd);
const size = @intCast(usize, (try os.fstat(fd)).size);
@@ -244,15 +244,21 @@ fn checkver(def_arg: *elf.Verdef, vsym_arg: i32, vername: []const u8, strings: [
}
pub const WindowsDynLib = struct {
- allocator: *mem.Allocator,
dll: windows.HMODULE,
- pub fn open(allocator: *mem.Allocator, path: []const u8) !WindowsDynLib {
- const wpath = try windows.sliceToPrefixedFileW(path);
+ pub fn open(path: []const u8) !WindowsDynLib {
+ const wpath = try win_util.sliceToPrefixedFileW(path);
return WindowsDynLib{
- .allocator = allocator,
- .dll = try windows.LoadLibraryW(&wpath),
+ .dll = windows.LoadLibraryW(&wpath) orelse {
+ const err = windows.GetLastError();
+ switch (err) {
+ windows.ERROR.FILE_NOT_FOUND => return error.FileNotFound,
+ windows.ERROR.PATH_NOT_FOUND => return error.FileNotFound,
+ windows.ERROR.MOD_NOT_FOUND => return error.FileNotFound,
+ else => return os.unexpectedErrorWindows(err),
+ }
+ },
};
}
@@ -273,7 +279,7 @@ test "dynamic_library" {
else => return,
};
- const dynlib = DynLib.open(std.debug.global_allocator, libname) catch |err| {
+ const dynlib = DynLib.open(libname) catch |err| {
testing.expect(err == error.FileNotFound);
return;
};