Package org.jruby.runtime.scope
Class DynamicScopeGenerator
java.lang.Object
org.jruby.runtime.scope.DynamicScopeGenerator
A generator for DynamicScope subclasses, using fields for storage and specializing appropriate methods.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final ClassDefiningClassLoaderstatic final Stringstatic final Stringprivate static final NonBlockingHashMapLong<MethodHandle> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static StringclassNameFromJiteClass(me.qmx.jitescript.JiteClass jiteClass) private static ClassdefineClass(ClassDefiningClassLoader cdcl, me.qmx.jitescript.JiteClass jiteClass) static MethodHandlegenerate(int size) static ClassgenerateClassForSize(ClassDefiningClassLoader cdcl, int size) private static ClassgenerateInternal(ClassDefiningClassLoader cdcl, int size, String clsPath, String clsName) private static voidgenGetSwitch(String clsPath, String[] newFields, me.qmx.jitescript.CodeBlock block, int offsetVar) private static voidgenPutSwitch(String clsPath, String[] newFields, me.qmx.jitescript.CodeBlock block, int offsetVar) private static MethodHandlegetClassFromSize(int size) private static ClassloadClassForSize(ClassDefiningClassLoader cdcl, int size) static voidPregenerate a number of scope shapes to the path given.private static String[]varList(int size)
-
Field Details
-
specializedFactories
-
CDCL
-
SCOPES_PACKAGE
- See Also:
-
SCOPES_PATH
-
SPECIALIZED_GETS
-
SPECIALIZED_GETS_OR_NIL
-
SPECIALIZED_SETS
-
-
Constructor Details
-
DynamicScopeGenerator
public DynamicScopeGenerator()
-
-
Method Details
-
generate
-
main
Pregenerate a number of scope shapes to the path given.- Parameters:
args- args[0] should be the path in which the classes are dumped
-
generateClassForSize
-
loadClassForSize
-
generateInternal
private static Class generateInternal(ClassDefiningClassLoader cdcl, int size, String clsPath, String clsName) -
genGetSwitch
-
genPutSwitch
-
getClassFromSize
-
defineClass
private static Class defineClass(ClassDefiningClassLoader cdcl, me.qmx.jitescript.JiteClass jiteClass) -
classNameFromJiteClass
-
varList
-