compiler: Borrow assembler arena for the parse region

6f1f12f226ce5b84c1e62af8c60b1f31acc4465188bfa9003d5eca61de530607
Alexis Sellier committed ago 1 parent 87ca5d9f
lib/std/arch/rv64/asm.rad +3 -3
456 456
}
457 457
458 458
/// Parser and emission state.
459 459
export record Assembler: 'parse {
460 460
    /// Allocation arena for temporary assembler state.
461 -
    arena: *unsafe mut alloc::Arena,
461 +
    arena: &'parse mut alloc::Arena,
462 462
    /// Intern pool borrowed for the current parse.
463 463
    pool: &'parse mut strings::Pool,
464 464
    /// Assembler lexical scanner.
465 465
    scan: scanner::Scanner,
466 466
    /// Output text buffer.
516 516
    let exportEntries = try! alloc::allocSlice(arena, @sizeOf(dict::Entry), @alignOf(dict::Entry), tableCap);
517 517
518 518
    let symbolBuf = symbols as *mut [Symbol];
519 519
    let fixupBuf = fixups as *mut [Fixup];
520 520
    let externalBuf = externalFixups as *mut [Fixup];
521 -
    let poolRef: 'parse = &mut *pool in {
521 +
    let poolRef: 'parse = &mut *pool, arenaRef = &mut *arena in {
522 522
        let mut a = Assembler 'parse {
523 -
            arena: arena as *unsafe mut alloc::Arena,
523 +
            arena: arenaRef,
524 524
            pool: poolRef,
525 525
            scan: scanner::scanner(sourceKind, source),
526 526
            text: textBuf,
527 527
            textLen: 0,
528 528
            data: dataBuf,