From b748d1f17fadbcfe17bf9806e3846d130180c825 Mon Sep 17 00:00:00 2001 From: Alexander Boettcher Date: Thu, 12 Jul 2012 09:35:37 +0200 Subject: [PATCH] NOVA: use only local ids in pager code, issue #268 --- base-nova/src/base/pager/pager.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/base-nova/src/base/pager/pager.cc b/base-nova/src/base/pager/pager.cc index 92e3e67b44..82a6f9b366 100644 --- a/base-nova/src/base/pager/pager.cc +++ b/base-nova/src/base/pager/pager.cc @@ -179,9 +179,17 @@ Pager_object::~Pager_object() Pager_capability Pager_entrypoint::manage(Pager_object *obj) { /* supplement capability with object ID obtained from CAP session */ - obj->Object_pool::Entry::cap(_cap_session->alloc(Native_capability(obj->pt_sel(), 0))); + Native_capability cap_session = _cap_session->alloc(Native_capability(obj->pt_sel(), 0)); + + /* + * cap_session.local_name() contains now the global object id. + * We drop it here since there is no need on NOVA to have it, + * instead we use solely the dst id and the local obj id. + */ + cap_session = Native_capability(cap_session.dst(), obj->pt_sel()); /* add server object to object pool */ + obj->Object_pool::Entry::cap(cap_session); insert(obj); /* return capability that uses the object id as badge */