luaur-code-gen 0.1.3

Native (A64/X64) code generation for Luau (Rust).
Documentation
use crate::functions::make_pages_not_executable_code_allocator::make_pages_not_executable;
use crate::macros::codegen_assert::CODEGEN_ASSERT;
use crate::records::code_allocation_data::CodeAllocationData;
use crate::records::code_allocator::CodeAllocator;
use luaur_common::FFlag;

impl CodeAllocator {
    pub fn deallocate(&mut self, code_allocation_data: CodeAllocationData) {
        CODEGEN_ASSERT!(FFlag::LuauCodegenFreeBlocks.get());

        if code_allocation_data.allocation_start.is_null() {
            return;
        }

        let result = make_pages_not_executable(
            code_allocation_data.allocation_start,
            code_allocation_data.allocation_size,
        );
        CODEGEN_ASSERT!(result);

        CODEGEN_ASSERT!(self.live_allocations != 0);
        self.live_allocations -= 1;
    }
}