Browse Source

Use `or_else` in the core library when it makes sense

gingerBill 4 years ago
parent
commit
9b3a0251ca

+ 2 - 5
core/os/os2/errors.odin

@@ -57,11 +57,8 @@ link_error_delete :: proc(lerr: Maybe(Link_Error)) {
 
 
 
 
 is_platform_error :: proc(ferr: Error) -> (err: i32, ok: bool) {
 is_platform_error :: proc(ferr: Error) -> (err: i32, ok: bool) {
-	v: Platform_Error;
-	if v, ok = ferr.(Platform_Error); ok {
-		err = v.err;
-	}
-	return;
+	v := or_else(ferr.(Platform_Error), {});
+	return v.err, v.err != 0;
 }
 }
 
 
 
 

+ 1 - 5
core/os/os2/file_stream.odin

@@ -13,11 +13,7 @@ error_to_io_error :: proc(ferr: Error) -> io.Error {
 	if ferr == nil {
 	if ferr == nil {
 		return .None;
 		return .None;
 	}
 	}
-	err, ok := ferr.(io.Error);
-	if !ok {
-		err = .Unknown;
-	}
-	return err;
+	return or_else(ferr.(io.Error), .Unknown);
 }
 }
 
 
 
 

+ 1 - 6
core/testing/runner_windows.odin

@@ -68,12 +68,7 @@ Thread_Os_Specific :: struct {
 thread_create :: proc(procedure: Thread_Proc) -> ^Thread {
 thread_create :: proc(procedure: Thread_Proc) -> ^Thread {
 	__windows_thread_entry_proc :: proc "stdcall" (t_: rawptr) -> win32.DWORD {
 	__windows_thread_entry_proc :: proc "stdcall" (t_: rawptr) -> win32.DWORD {
 		t := (^Thread)(t_);
 		t := (^Thread)(t_);
-		context = runtime.default_context();
-		c := context;
-		if ic, ok := t.init_context.?; ok {
-			c = ic;
-		}
-		context = c;
+		context = or_else(t.init_context.?, runtime.default_context());
 
 
 		t.procedure(t);
 		t.procedure(t);
 
 

+ 1 - 7
core/thread/thread_unix.odin

@@ -38,8 +38,6 @@ Thread_Os_Specific :: struct #align 16 {
 //
 //
 _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^Thread {
 _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^Thread {
 	__linux_thread_entry_proc :: proc "c" (t: rawptr) -> rawptr {
 	__linux_thread_entry_proc :: proc "c" (t: rawptr) -> rawptr {
-		context = runtime.default_context();
-
 		t := (^Thread)(t);
 		t := (^Thread)(t);
 		sync.condition_wait_for(&t.start_gate);
 		sync.condition_wait_for(&t.start_gate);
 		sync.condition_destroy(&t.start_gate);
 		sync.condition_destroy(&t.start_gate);
@@ -47,11 +45,7 @@ _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^
 		t.start_gate = {};
 		t.start_gate = {};
 		t.start_mutex = {};
 		t.start_mutex = {};
 
 
-		c := context;
-		if ic, ok := t.init_context.?; ok {
-			c = ic;
-		}
-		context = c;
+		context = or_else(t.init_context.?, runtime.default_context());
 
 
 		t.procedure(t);
 		t.procedure(t);
 
 

+ 1 - 6
core/thread/thread_windows.odin

@@ -23,12 +23,7 @@ _create :: proc(procedure: Thread_Proc, priority := Thread_Priority.Normal) -> ^
 
 
 	__windows_thread_entry_proc :: proc "stdcall" (t_: rawptr) -> win32.DWORD {
 	__windows_thread_entry_proc :: proc "stdcall" (t_: rawptr) -> win32.DWORD {
 		t := (^Thread)(t_);
 		t := (^Thread)(t_);
-		context = runtime.default_context();
-		c := context;
-		if ic, ok := t.init_context.?; ok {
-			c = ic;
-		}
-		context = c;
+		context = or_else(t.init_context.?, runtime.default_context());
 
 
 		t.procedure(t);
 		t.procedure(t);