Commit 463f704431

LemonBoy <thatlemon@gmail.com>
2020-02-10 17:19:19
wide
1 parent 9964979
Changed files (2)
lib/std/debug.zig
@@ -1255,31 +1255,25 @@ pub const DebugInfo = struct {
             const seg_end = seg_start + info.SizeOfImage;
 
             if (address >= seg_start and address < seg_end) {
-                var name_buffer: [windows.PATH_MAX_WIDE]u16 = [_]u16{0} ** windows.PATH_MAX_WIDE;
-                // XXX Use W variant
-                const len = windows.kernel32.K32GetModuleFileNameExW(
+                var name_buffer: [windows.MAX_PATH]u8 = undefined;
+                // XXX: Use W variant (#534)
+                const len = windows.kernel32.K32GetModuleFileNameExA(
                     process_handle,
                     module,
-                    @ptrCast(windows.LPWSTR, &name_buffer),
-                    @sizeOf(@TypeOf(name_buffer)) / @sizeOf(u16),
+                    @ptrCast(windows.LPSTR, &name_buffer),
+                    @sizeOf(@TypeOf(name_buffer)) / @sizeOf(u8),
                 );
                 assert(len > 0);
-                const name_slice = mem.toSlice(u16, name_buffer[0..:0]);
-                warn("slice len {}\n", .{name_slice.len});
-
-                const x = try std.unicode.utf16leToUtf8Alloc(self.allocator, name_buffer[0..]);
-                warn("ask for {s} len {}\n", .{ x, name_slice.len });
-                self.allocator.free(x);
 
                 if (self.address_map.getValue(seg_start)) |obj_di| {
-                    warn("cache hit!\n", .{});
                     return obj_di;
                 }
 
-                warn("loading?\n", .{});
-                const file_obj = try fs.openFileAbsoluteW(name_slice, .{});
+                // XXX: The compiler segfaults if the slicing is done as a
+                // parameter
+                const tmp = name_buffer[0..:0];
+                const file_obj = try fs.cwd().openFileC(tmp, .{});
                 errdefer file_obj.close();
-                warn("loaded!\n", .{});
 
                 const obj_di = try self.allocator.create(ObjectDebugInfo);
                 errdefer self.allocator.destroy(obj_di);
lib/std/fs.zig
@@ -859,8 +859,6 @@ pub const Dir = struct {
             null,
             0,
         );
-        std.debug.warn("here? rc {x}\n", .{rc});
-
         switch (rc) {
             .SUCCESS => return result,
             .OBJECT_NAME_INVALID => unreachable,