Skip to content

Commit

Permalink
Merge #379
Browse files Browse the repository at this point in the history
379: Unsafe reasoning in ArrayArena r=jeehoonkang a=Medowhill

* ~`Arena`의 unsafe reasoning을 위한 PR입니다.~
* ~일단 `ArrayPtr`과 `MruPtr`이 가지고 있는 포인터를 `*mut`에서 `NonNull`로 바꾸었습니다.~
* ~코드를 보다 보니 `Arena` 구현에 관련된 질문이 몇 가지 생겼는데 해당 위치에 comment로 달아 두겠습니다.~

*edited*

`ArrayArena`의 unsafe reasoning을 위한 PR입니다.

* `ArrayPtr`과 `MruPtr`이 가지고 있는 포인터를 `*mut`에서 `NonNull`로 바꾸었습니다.
* 사용되지 않는 정의인 `impl<A: Arena, T: Clone + Deref<Target = A>> Arena for T`를 없애고 `Arena` 트레잇에 `Rc`를 반환하는 메서드를 추가했습니다.
* `ArrayPtr`이 해당 핸들을 만든 `ArrayArena`가 살아 있는 동안만 살아 있도록 `ArrayPtr`에 lifetime parameter를 추가했습니다. 이에 따라 `Rc`에도 lifetime parameter가 추가되었습니다.

`MruArena`는 이 PR에서 다루지 않습니다.

Co-authored-by: Jaemin Hong <hjm0901@gmail.com>
  • Loading branch information
kaist-cp-bors[bot] and Medowhill authored Feb 2, 2021
2 parents f06956c + de20e82 commit 551a6b1
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 152 deletions.
Loading

0 comments on commit 551a6b1

Please sign in to comment.