compiler: Borrow assembler arena for the parse region
6f1f12f226ce5b84c1e62af8c60b1f31acc4465188bfa9003d5eca61de530607
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, |