fixup: FSEvents watcher
This commit is contained in:
parent
aa5f189175
commit
6a6d9b07d2
2 changed files with 7 additions and 5 deletions
|
|
@ -736,6 +736,7 @@ pub fn build_exe(
|
|||
|
||||
if (target.result.os.tag == .macos) {
|
||||
exe.addFrameworkPath(b.dependency("xcode-frameworks", .{}).path("Frameworks"));
|
||||
exe.addLibraryPath(b.dependency("xcode-frameworks", .{}).path("lib"));
|
||||
exe.linkFramework("CoreServices");
|
||||
exe.linkFramework("CoreFoundation");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -352,19 +352,20 @@ const FSEventsBackend = struct {
|
|||
defer ctx.parent.deinit();
|
||||
|
||||
// Build the CFArray of paths to watch.
|
||||
var cf_strings = std.BoundedArray(?*anyopaque, 4096){};
|
||||
var cf_strings: std.ArrayListUnmanaged(?*anyopaque) = .empty;
|
||||
defer cf_strings.deinit(std.heap.c_allocator);
|
||||
var it = self.watches.iterator();
|
||||
while (it.next()) |entry| {
|
||||
const path = entry.key_ptr.*;
|
||||
const s = cf.CFStringCreateWithBytesNoCopy(null, path.ptr, @intCast(path.len), kCFStringEncodingUTF8, 0, &cf.kCFAllocatorNull) orelse continue;
|
||||
cf_strings.append(s) catch {
|
||||
const s = cf.CFStringCreateWithBytesNoCopy(null, path.ptr, @intCast(path.len), kCFStringEncodingUTF8, 0, cf.kCFAllocatorNull) orelse continue;
|
||||
cf_strings.append(std.heap.c_allocator, s) catch {
|
||||
cf.CFRelease(s);
|
||||
break;
|
||||
};
|
||||
}
|
||||
defer for (cf_strings.slice()) |s| cf.CFRelease(s.?);
|
||||
defer for (cf_strings.items) |s| cf.CFRelease(s.?);
|
||||
|
||||
const paths_array = cf.CFArrayCreate(null, cf_strings.slice().ptr, @intCast(cf_strings.len), null) orelse return;
|
||||
const paths_array = cf.CFArrayCreate(null, cf_strings.items.ptr, @intCast(cf_strings.items.len), null) orelse return;
|
||||
defer cf.CFRelease(paths_array);
|
||||
|
||||
const stream = cf.FSEventStreamCreate(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue