mirror of
https://github.com/Ed94/Odin.git
synced 2026-07-31 03:40:08 +00:00
use context.temp_allocator instead of general allocation + delete()
where clone_to_cstring is used with foreign code, it is prefered to use `context.temp_allocator` instead of using the general allocator and manually delete the memory after use.
This commit is contained in:
@@ -91,8 +91,7 @@ sys_open :: proc(path: string, oflag: Open_Flags, mode: Permission) -> (c.int, b
|
||||
|
||||
cmode: u32 = 0
|
||||
cflags: u32 = 0
|
||||
cpath: cstring = strings.clone_to_cstring(path)
|
||||
defer delete(cpath)
|
||||
cpath: cstring = strings.clone_to_cstring(path, context.temp_allocator)
|
||||
|
||||
cflags = _sys_permission_mode(mode)
|
||||
|
||||
@@ -124,39 +123,32 @@ sys_open :: proc(path: string, oflag: Open_Flags, mode: Permission) -> (c.int, b
|
||||
}
|
||||
|
||||
sys_mkdir :: proc(path: string, mode: Permission) -> bool {
|
||||
cpath: cstring = strings.clone_to_cstring(path)
|
||||
defer delete(cpath)
|
||||
cpath: cstring = strings.clone_to_cstring(path, context.temp_allocator)
|
||||
cflags := _sys_permission_mode(mode)
|
||||
return syscall_mkdir(cpath, cflags) != -1
|
||||
}
|
||||
|
||||
sys_mkdir_at :: proc(fd: c.int, path: string, mode: Permission) -> bool {
|
||||
cpath: cstring = strings.clone_to_cstring(path)
|
||||
defer delete(cpath)
|
||||
cpath: cstring = strings.clone_to_cstring(path, context.temp_allocator)
|
||||
cflags := _sys_permission_mode(mode)
|
||||
return syscall_mkdir_at(fd, cpath, cflags) != -1
|
||||
}
|
||||
|
||||
sys_rmdir :: proc(path: string, mode: Permission) -> bool {
|
||||
cpath: cstring = strings.clone_to_cstring(path)
|
||||
defer delete(cpath)
|
||||
cpath: cstring = strings.clone_to_cstring(path, context.temp_allocator)
|
||||
cflags := _sys_permission_mode(mode)
|
||||
return syscall_rmdir(cpath, cflags) != -1
|
||||
}
|
||||
|
||||
sys_rename :: proc(path: string, new_path: string) -> bool {
|
||||
cpath: cstring = strings.clone_to_cstring(path)
|
||||
defer delete(cpath)
|
||||
cnpath: cstring = strings.clone_to_cstring(new_path)
|
||||
defer delete(cnpath)
|
||||
cpath: cstring = strings.clone_to_cstring(path, context.temp_allocator)
|
||||
cnpath: cstring = strings.clone_to_cstring(new_path, context.temp_allocator)
|
||||
return syscall_rename(cpath, cnpath) != -1
|
||||
}
|
||||
|
||||
sys_rename_at :: proc(fd: c.int, path: string, to_fd: c.int, new_path: string) -> bool {
|
||||
cpath: cstring = strings.clone_to_cstring(path)
|
||||
defer delete(cpath)
|
||||
cnpath: cstring = strings.clone_to_cstring(new_path)
|
||||
defer delete(cnpath)
|
||||
cpath: cstring = strings.clone_to_cstring(path, context.temp_allocator)
|
||||
cnpath: cstring = strings.clone_to_cstring(new_path, context.temp_allocator)
|
||||
return syscall_rename_at(fd, cpath, to_fd, cnpath) != -1
|
||||
}
|
||||
|
||||
@@ -165,14 +157,12 @@ sys_lseek :: proc(fd: c.int, offset: i64, whence: Offset_From) -> i64 {
|
||||
}
|
||||
|
||||
sys_chmod :: proc(path: string, mode: Permission) -> bool {
|
||||
cpath: cstring = strings.clone_to_cstring(path)
|
||||
defer delete(cpath)
|
||||
cpath: cstring = strings.clone_to_cstring(path, context.temp_allocator)
|
||||
cmode := _sys_permission_mode(mode)
|
||||
return syscall_chmod(cpath, cmode) != -1
|
||||
}
|
||||
|
||||
sys_lstat :: proc(path: string, status: ^stat) -> bool {
|
||||
cpath: cstring = strings.clone_to_cstring(path)
|
||||
defer delete(cpath)
|
||||
cpath: cstring = strings.clone_to_cstring(path, context.temp_allocator)
|
||||
return syscall_lstat(cpath, status) != -1
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user