From f4f2b8f5ad6bc57e95681687618d4693356dfa0c Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 29 Nov 2020 18:42:13 +0000 Subject: [PATCH] Add `_internal` field to `context` --- core/runtime/core.odin | 3 +++ core/slice/sort.odin | 8 ++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/core/runtime/core.odin b/core/runtime/core.odin index b0c76720a..b23358b5c 100644 --- a/core/runtime/core.odin +++ b/core/runtime/core.odin @@ -332,6 +332,9 @@ Context :: struct { user_data: any, user_ptr: rawptr, user_index: int, + + // Internal use only + _internal: rawptr, } diff --git a/core/slice/sort.odin b/core/slice/sort.odin index 1e346b1f6..1e7051de5 100644 --- a/core/slice/sort.odin +++ b/core/slice/sort.odin @@ -54,17 +54,17 @@ reverse_sort :: proc(data: $T/[]$E) where ORD(E) { // TODO(bill): Should `sort_by_key` exist or is `sort_by` more than enough? sort_by_key :: proc(data: $T/[]$E, key: proc(E) -> $K) where ORD(K) { - context.user_ptr = rawptr(key); + context._internal = rawptr(key); sort_by(data, proc(i, j: E) -> bool { - k := (proc(E) -> K)(context.user_ptr); + k := (proc(E) -> K)(context._internal); return k(i) < k(j); }); } reverse_sort_by_key :: proc(data: $T/[]$E, key: proc(E) -> $K) where ORD(K) { - context.user_ptr = rawptr(key); + context._internal = rawptr(key); sort_by(data, proc(i, j: E) -> bool { - k := (proc(E) -> K)(context.user_ptr); + k := (proc(E) -> K)(context._internal); return k(j) < k(i); }); }