kernel/vm: Allow calling AddressSpaceWriteLocker::SetTo with something already set.
Other Lockers behave this way, and the behavior will be needed in _user_set_memory_protection.
This commit is contained in:
@@ -219,7 +219,7 @@ AddressSpaceWriteLocker::Unset()
|
|||||||
status_t
|
status_t
|
||||||
AddressSpaceWriteLocker::SetTo(team_id team)
|
AddressSpaceWriteLocker::SetTo(team_id team)
|
||||||
{
|
{
|
||||||
ASSERT(fSpace == NULL);
|
Unset();
|
||||||
|
|
||||||
fSpace = VMAddressSpace::Get(team);
|
fSpace = VMAddressSpace::Get(team);
|
||||||
if (fSpace == NULL)
|
if (fSpace == NULL)
|
||||||
@@ -234,7 +234,7 @@ AddressSpaceWriteLocker::SetTo(team_id team)
|
|||||||
void
|
void
|
||||||
AddressSpaceWriteLocker::SetTo(VMAddressSpace* space, bool getNewReference)
|
AddressSpaceWriteLocker::SetTo(VMAddressSpace* space, bool getNewReference)
|
||||||
{
|
{
|
||||||
ASSERT(fSpace == NULL);
|
Unset();
|
||||||
|
|
||||||
fSpace = space;
|
fSpace = space;
|
||||||
|
|
||||||
@@ -249,7 +249,7 @@ AddressSpaceWriteLocker::SetTo(VMAddressSpace* space, bool getNewReference)
|
|||||||
status_t
|
status_t
|
||||||
AddressSpaceWriteLocker::SetFromArea(area_id areaID, VMArea*& area)
|
AddressSpaceWriteLocker::SetFromArea(area_id areaID, VMArea*& area)
|
||||||
{
|
{
|
||||||
ASSERT(fSpace == NULL);
|
Unset();
|
||||||
|
|
||||||
fSpace = GetAddressSpaceByAreaID(areaID);
|
fSpace = GetAddressSpaceByAreaID(areaID);
|
||||||
if (fSpace == NULL)
|
if (fSpace == NULL)
|
||||||
@@ -273,7 +273,7 @@ status_t
|
|||||||
AddressSpaceWriteLocker::SetFromArea(team_id team, area_id areaID,
|
AddressSpaceWriteLocker::SetFromArea(team_id team, area_id areaID,
|
||||||
bool allowKernel, VMArea*& area)
|
bool allowKernel, VMArea*& area)
|
||||||
{
|
{
|
||||||
ASSERT(fSpace == NULL);
|
Unset();
|
||||||
|
|
||||||
VMAreas::ReadLock();
|
VMAreas::ReadLock();
|
||||||
|
|
||||||
@@ -560,8 +560,7 @@ MultiAddressSpaceLocker::AddAreaCacheAndLock(area_id areaID,
|
|||||||
// done.
|
// done.
|
||||||
if (cache == oldCache && firstArea == cache->areas.First()) {
|
if (cache == oldCache && firstArea == cache->areas.First()) {
|
||||||
_area = area;
|
_area = area;
|
||||||
if (_cache != NULL)
|
*_cache = cache;
|
||||||
*_cache = cache;
|
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user