mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-15 08:32:22 -07:00
77 lines
1.8 KiB
C
77 lines
1.8 KiB
C
// Copyright (c) 2024 Epic Games Tools
|
|
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Generated Code
|
|
|
|
#include "eval/generated/eval.meta.c"
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Basic Helper Functions
|
|
|
|
#if !defined(XXH_IMPLEMENTATION)
|
|
# define XXH_IMPLEMENTATION
|
|
# define XXH_STATIC_LINKING_ONLY
|
|
# include "third_party/xxHash/xxhash.h"
|
|
#endif
|
|
|
|
internal U64
|
|
e_hash_from_string(U64 seed, String8 string)
|
|
{
|
|
U64 result = XXH3_64bits_withSeed(string.str, string.size, seed);
|
|
return result;
|
|
}
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Message Functions
|
|
|
|
internal void
|
|
e_msg(Arena *arena, E_MsgList *msgs, E_MsgKind kind, void *location, String8 text)
|
|
{
|
|
E_Msg *msg = push_array(arena, E_Msg, 1);
|
|
SLLQueuePush(msgs->first, msgs->last, msg);
|
|
msgs->count += 1;
|
|
msgs->max_kind = Max(kind, msgs->max_kind);
|
|
msg->kind = kind;
|
|
msg->location = location;
|
|
msg->text = text;
|
|
}
|
|
|
|
internal void
|
|
e_msgf(Arena *arena, E_MsgList *msgs, E_MsgKind kind, void *location, char *fmt, ...)
|
|
{
|
|
va_list args;
|
|
va_start(args, fmt);
|
|
String8 text = push_str8fv(arena, fmt, args);
|
|
va_end(args);
|
|
e_msg(arena, msgs, kind, location, text);
|
|
}
|
|
|
|
internal void
|
|
e_msg_list_concat_in_place(E_MsgList *dst, E_MsgList *to_push)
|
|
{
|
|
if(dst->last != 0 && to_push->first != 0)
|
|
{
|
|
dst->last->next = to_push->first;
|
|
dst->last = to_push->last;
|
|
dst->count += to_push->count;
|
|
dst->max_kind = Max(dst->max_kind, to_push->max_kind);
|
|
}
|
|
else if(to_push->first != 0)
|
|
{
|
|
MemoryCopyStruct(dst, to_push);
|
|
}
|
|
MemoryZeroStruct(to_push);
|
|
}
|
|
|
|
////////////////////////////////
|
|
//~ rjf: Space Functions
|
|
|
|
internal E_Space
|
|
e_space_make(E_SpaceKind kind)
|
|
{
|
|
E_Space space = {0};
|
|
space.kind = kind;
|
|
return space;
|
|
}
|