From b8cd4b18b068d83bd4c2ae44777f60244d8d1853 Mon Sep 17 00:00:00 2001 From: emekoi Date: Mon, 27 May 2019 10:12:07 -0500 Subject: [PATCH 1/2] remove unneed allocator from DynLib --- std/dynamic_library.zig | 24 +++++++++++++++--------- 1 file 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; }; From f2b64fd18f73fe26934b388c1da95e1b4e770c83 Mon Sep 17 00:00:00 2001 From: emekoi Date: Tue, 28 May 2019 11:18:30 -0500 Subject: [PATCH 2/2] updated dynamic libraries to new std --- std/dynamic_library.zig | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/std/dynamic_library.zig b/std/dynamic_library.zig index db5dffeefd..e55d6df84f 100644 --- a/std/dynamic_library.zig +++ b/std/dynamic_library.zig @@ -105,8 +105,8 @@ pub const LinuxDynLib = struct { /// Trusts the file 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 fd = try os.open(path, 0, os.O_RDONLY | os.O_CLOEXEC); + errdefer os.close(fd); const size = @intCast(usize, (try os.fstat(fd)).size); @@ -247,18 +247,10 @@ pub const WindowsDynLib = struct { dll: windows.HMODULE, pub fn open(path: []const u8) !WindowsDynLib { - const wpath = try win_util.sliceToPrefixedFileW(path); + const wpath = try windows.sliceToPrefixedFileW(path); return WindowsDynLib{ - .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), - } - }, + .dll = try windows.LoadLibraryW(&wpath), }; }