Browse Source

make sure stdout and stderr always point to allocation

Laytan 10 months ago
parent
commit
d9cfe692a9
1 changed files with 2 additions and 2 deletions
  1. 2 2
      core/os/os2/process.odin

+ 2 - 2
core/os/os2/process.odin

@@ -400,9 +400,11 @@ process_exec :: proc(
 
 
 		stdout_b: [dynamic]byte
 		stdout_b: [dynamic]byte
 		stdout_b.allocator = allocator
 		stdout_b.allocator = allocator
+		defer stdout = stdout_b[:]
 
 
 		stderr_b: [dynamic]byte
 		stderr_b: [dynamic]byte
 		stderr_b.allocator = allocator
 		stderr_b.allocator = allocator
+		defer stderr = stderr_b[:]
 
 
 		buf: [1024]u8 = ---
 		buf: [1024]u8 = ---
 		n: int
 		n: int
@@ -419,7 +421,6 @@ process_exec :: proc(
 				switch err {
 				switch err {
 				case nil: // nothing
 				case nil: // nothing
 				case .EOF, .Broken_Pipe:
 				case .EOF, .Broken_Pipe:
-					stdout      = stdout_b[:]
 					stdout_done = true
 					stdout_done = true
 				case:
 				case:
 					return
 					return
@@ -435,7 +436,6 @@ process_exec :: proc(
 				switch err {
 				switch err {
 				case nil: // nothing
 				case nil: // nothing
 				case .EOF, .Broken_Pipe:
 				case .EOF, .Broken_Pipe:
-					stderr      = stderr_b[:]
 					stderr_done = true
 					stderr_done = true
 				case:
 				case:
 					return
 					return