diff options
| author | emekoi <emekankurumeh@outlook.com> | 2019-05-27 10:12:07 -0500 |
|---|---|---|
| committer | emekoi <emekankurumeh@outlook.com> | 2019-05-28 10:34:35 -0500 |
| commit | b8cd4b18b068d83bd4c2ae44777f60244d8d1853 (patch) | |
| tree | c91951a315a48a0babac5534645c44000b96e16d /std/dynamic_library.zig | |
| parent | d1b6f29d225bbedd0afb97fce64f5d042df4d9c6 (diff) | |
| download | zig-b8cd4b18b068d83bd4c2ae44777f60244d8d1853.tar.gz zig-b8cd4b18b068d83bd4c2ae44777f60244d8d1853.zip | |
remove unneed allocator from DynLib
Diffstat (limited to 'std/dynamic_library.zig')
| -rw-r--r-- | std/dynamic_library.zig | 24 |
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; }; |
