def w_self(self): if self._w_self is not None: return self._w_self else: space = self.space w_self = W_PointersObject(space, space.w_MethodContext, self._w_self_size) w_self.store_strategy(self) self._w_self = w_self return w_self
def build_block_context(space, s_home, argcnt, pc): size = s_home.own_size() - s_home.tempsize() w_self = W_PointersObject(space, space.w_BlockContext, size) ctx = ContextPartShadow(space, w_self, size, space.w_BlockContext) ctx.store_expected_argument_count(argcnt) ctx.store_w_home(s_home.w_self()) ctx.store_initialip(pc) ctx.store_pc(pc) w_self.store_strategy(ctx) ctx.init_temps_and_stack() return ctx