// Copyright (c) Epic Games Tools // Licensed under the MIT license (https://opensource.org/license/mit/) #if PROFILE_SPALL internal inline void spall_begin(char *fmt, ...) { if(spall_buffer.data == 0) { spall_buffer.length = MB(1); spall_buffer.data = os_reserve(spall_buffer.length); os_commit(spall_buffer.data, spall_buffer.length); spall_buffer_init(&spall_profile, &spall_buffer); } if(spall_pid == 0) { spall_pid = os_get_process_info()->pid; } if(spall_tid == 0) { spall_tid = os_tid(); } Temp scratch = scratch_begin(0, 0); va_list args; va_start(args, fmt); String8 string = push_str8fv(scratch.arena, fmt, args); spall_buffer_begin_ex(&spall_profile, &spall_buffer, string.str, string.size, os_now_microseconds(), spall_tid, spall_pid); va_end(args); scratch_end(scratch); } #endif