This patch introduces the local portion (LocalObjectView) of the
ObjectView abstraction and demonstrates its use by modifying the
secondary allocator for out-of-process enumeration.
The ObjectView abstraction is an interface that tries to abstract away
the differences performing in-process and out-of-process operations so
that in-process and out-of-process enumeration can share the same
implementation.
This patch refers to but does not add the RemoteObjectView
implementation of the ObjectView abstraction which will be added
in later patches.
This patch is based on https://reviews.llvm.org/D50330 which provides
a complete implementation for all allocators but has been abandoned
due to difficulty of reviewing the code.
rdar://problem/45284065
I think writing
auto t = ObjectView::MakeView(&chunks_[i])
is considerably more clear.
@kcc Would that be better with you?
We can also do an implicit constructor and write
ObjectView t = &chunks_[i]