Package org.jruby.specialized
Class RubyObjectSpecializer
java.lang.Object
org.jruby.specialized.RubyObjectSpecializer
A code generator for Ruby objects, to map known instance variables into fields.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ClassDefiningClassLoaderstatic final MethodHandles.Lookupprivate static final NonBlockingHashMapLong<RubyObjectSpecializer.ClassAndAllocator> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static StringclassNameFromJiteClass(me.qmx.jitescript.JiteClass jiteClass) private static ClassdefineClass(me.qmx.jitescript.JiteClass jiteClass) private static ClassgenerateInternal(int size, String clsPath) private static voidgenGetSwitch(String clsPath, int size, me.qmx.jitescript.CodeBlock block, int offsetVar) private static voidgenPutSwitch(String clsPath, int size, me.qmx.jitescript.CodeBlock block, int offsetVar) private static RubyObjectSpecializer.ClassAndAllocatorgetClassForSize(int size) static ObjectAllocatorspecializeForVariables(RubyClass klass, Set<String> foundVariables)
-
Field Details
-
LOOKUP
-
SPECIALIZED_CLASSES
private static final NonBlockingHashMapLong<RubyObjectSpecializer.ClassAndAllocator> SPECIALIZED_CLASSES -
LOADER
-
-
Constructor Details
-
RubyObjectSpecializer
public RubyObjectSpecializer()
-
-
Method Details
-
getClassForSize
-
specializeForVariables
-
generateInternal
-
genGetSwitch
private static void genGetSwitch(String clsPath, int size, me.qmx.jitescript.CodeBlock block, int offsetVar) -
genPutSwitch
private static void genPutSwitch(String clsPath, int size, me.qmx.jitescript.CodeBlock block, int offsetVar) -
defineClass
-
classNameFromJiteClass
-