Commit 46a37fbe by Stefan Marr

Make method lookup elideable and make fields immutable

Signed-off-by: Stefan Marr <git@stefan-marr.de>
1 parent 270a5b9c
Showing with 6 additions and 2 deletions
from rpython.rlib import jit
from som.vmobjects.object import Object
......@@ -6,7 +7,9 @@ class Class(Object):
_immutable_fields_ = ["_super_class"
"_name",
"_instance_fields"
"_instance_invokables"]
"_instance_invokables",
"_invokables_table",
"_universe"]
def __init__(self, universe, number_of_fields=-1):
Object.__init__(self, universe.nilObject, number_of_fields)
......@@ -62,7 +65,8 @@ class Class(Object):
# Set this class as the holder of the given invokable
value.set_holder(self)
self.get_instance_invokables().set_indexable_field(index, value)
@jit.elidable_promote("all")
def lookup_invokable(self, signature):
# Lookup invokable and return if found
invokable = self._invokables_table.get(signature, None)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!