aboutsummaryrefslogtreecommitdiff
path: root/core/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'core/runtime')
-rw-r--r--core/runtime/default_temporary_allocator.odin25
-rw-r--r--core/runtime/internal.odin5
2 files changed, 16 insertions, 14 deletions
diff --git a/core/runtime/default_temporary_allocator.odin b/core/runtime/default_temporary_allocator.odin
index b3602469d..afe3ee922 100644
--- a/core/runtime/default_temporary_allocator.odin
+++ b/core/runtime/default_temporary_allocator.odin
@@ -1,23 +1,12 @@
package runtime
-@(private)
-byte_slice :: #force_inline proc "contextless" (data: rawptr, len: int) -> []byte {
- return transmute([]u8)Raw_Slice{data=data, len=max(len, 0)}
-}
-
-
DEFAULT_TEMP_ALLOCATOR_BACKING_SIZE: int : #config(DEFAULT_TEMP_ALLOCATOR_BACKING_SIZE, 1<<22)
-Default_Temp_Allocator :: struct {
- data: []byte,
- curr_offset: int,
- prev_allocation: rawptr,
- backup_allocator: Allocator,
- leaked_allocations: [dynamic][]byte,
-}
-
when ODIN_OS == "freestanding" {
+ Default_Temp_Allocator :: struct {
+ }
+
default_temp_allocator_init :: proc(s: ^Default_Temp_Allocator, size: int, backup_allocator := context.allocator) {
}
@@ -30,6 +19,14 @@ when ODIN_OS == "freestanding" {
return nil, nil
}
} else {
+ Default_Temp_Allocator :: struct {
+ data: []byte,
+ curr_offset: int,
+ prev_allocation: rawptr,
+ backup_allocator: Allocator,
+ leaked_allocations: [dynamic][]byte,
+ }
+
default_temp_allocator_init :: proc(s: ^Default_Temp_Allocator, size: int, backup_allocator := context.allocator) {
s.data = make_aligned([]byte, size, 2*align_of(rawptr), backup_allocator)
s.curr_offset = 0
diff --git a/core/runtime/internal.odin b/core/runtime/internal.odin
index 4347f28c0..0a6d07467 100644
--- a/core/runtime/internal.odin
+++ b/core/runtime/internal.odin
@@ -2,6 +2,11 @@ package runtime
import "core:intrinsics"
+@(private)
+byte_slice :: #force_inline proc "contextless" (data: rawptr, len: int) -> []byte #no_bounds_check {
+ return ([^]byte)(data)[:max(len, 0)]
+}
+
bswap_16 :: proc "contextless" (x: u16) -> u16 {
return x>>8 | x<<8
}