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) {
|
if (target.result.os.tag == .macos) {
|
||||||
exe.addFrameworkPath(b.dependency("xcode-frameworks", .{}).path("Frameworks"));
|
exe.addFrameworkPath(b.dependency("xcode-frameworks", .{}).path("Frameworks"));
|
||||||
|
exe.addLibraryPath(b.dependency("xcode-frameworks", .{}).path("lib"));
|
||||||
exe.linkFramework("CoreServices");
|
exe.linkFramework("CoreServices");
|
||||||
exe.linkFramework("CoreFoundation");
|
exe.linkFramework("CoreFoundation");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -352,19 +352,20 @@ const FSEventsBackend = struct {
|
||||||
defer ctx.parent.deinit();
|
defer ctx.parent.deinit();
|
||||||
|
|
||||||
// Build the CFArray of paths to watch.
|
// 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();
|
var it = self.watches.iterator();
|
||||||
while (it.next()) |entry| {
|
while (it.next()) |entry| {
|
||||||
const path = entry.key_ptr.*;
|
const path = entry.key_ptr.*;
|
||||||
const s = cf.CFStringCreateWithBytesNoCopy(null, path.ptr, @intCast(path.len), kCFStringEncodingUTF8, 0, &cf.kCFAllocatorNull) orelse continue;
|
const s = cf.CFStringCreateWithBytesNoCopy(null, path.ptr, @intCast(path.len), kCFStringEncodingUTF8, 0, cf.kCFAllocatorNull) orelse continue;
|
||||||
cf_strings.append(s) catch {
|
cf_strings.append(std.heap.c_allocator, s) catch {
|
||||||
cf.CFRelease(s);
|
cf.CFRelease(s);
|
||||||
break;
|
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);
|
defer cf.CFRelease(paths_array);
|
||||||
|
|
||||||
const stream = cf.FSEventStreamCreate(
|
const stream = cf.FSEventStreamCreate(
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue