Exemplo n.º 1
0
 def set_ref_by_name(self, name, r_value):
     try:
         no = self.bytecode.var_to_pos[name]
     except KeyError:
         if self.extra_variables is None:
             self.extra_variables = new_rdict()
         self.extra_variables[name] = r_value
     else:
         assert no >= 0
         self.vars_w[no] = r_value
Exemplo n.º 2
0
 def set_ref_by_name(self, name, r_value):
     try:
         no = self.bytecode.var_to_pos[name]
     except KeyError:
         if self.extra_variables is None:
             self.extra_variables = new_rdict()
         self.extra_variables[name] = r_value
     else:
         assert no >= 0
         self.vars_w[no] = r_value
Exemplo n.º 3
0
 def get_ref_by_name(self, name, create_new=True):
     """Get or create a reference to the variable `$name`."""
     try:
         no = self.bytecode.var_to_pos[name]
     except KeyError:
         if self.extra_variables is None:
             if not create_new:
                 return None
             self.extra_variables = new_rdict()
         try:
             w_ref = self.extra_variables[name]
         except KeyError:
             if not create_new:
                 return None
             w_ref = self.interp.space.empty_ref()
             self.extra_variables[name] = w_ref
         return w_ref
     else:
         return self.load_ref(no)
Exemplo n.º 4
0
 def get_ref_by_name(self, name, create_new=True):
     """Get or create a reference to the variable `$name`."""
     try:
         no = self.bytecode.var_to_pos[name]
     except KeyError:
         if self.extra_variables is None:
             if not create_new:
                 return None
             self.extra_variables = new_rdict()
         try:
             w_ref = self.extra_variables[name]
         except KeyError:
             if not create_new:
                 return None
             w_ref = self.interp.space.empty_ref()
             self.extra_variables[name] = w_ref
         return w_ref
     else:
         return self.load_ref(no)
Exemplo n.º 5
0
 def __init__(self, space):
     W_RDictArrayObject.__init__(self, space, new_rdict(), 0)
     self._globals_map = {}
     self._globals_version = _Globals_Version()