Class DynamicScopeGenerator

java.lang.Object
org.jruby.runtime.scope.DynamicScopeGenerator

public class DynamicScopeGenerator extends Object
A generator for DynamicScope subclasses, using fields for storage and specializing appropriate methods.
  • Field Details

  • Constructor Details

    • DynamicScopeGenerator

      public DynamicScopeGenerator()
  • Method Details

    • generate

      public static MethodHandle generate(int size)
    • main

      public static void main(String[] args)
      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

      public static Class generateClassForSize(ClassDefiningClassLoader cdcl, int size)
    • loadClassForSize

      private static Class loadClassForSize(ClassDefiningClassLoader cdcl, int size)
    • generateInternal

      private static Class generateInternal(ClassDefiningClassLoader cdcl, int size, String clsPath, String clsName)
    • genGetSwitch

      private static void genGetSwitch(String clsPath, String[] newFields, me.qmx.jitescript.CodeBlock block, int offsetVar)
    • genPutSwitch

      private static void genPutSwitch(String clsPath, String[] newFields, me.qmx.jitescript.CodeBlock block, int offsetVar)
    • getClassFromSize

      private static MethodHandle getClassFromSize(int size)
    • defineClass

      private static Class defineClass(ClassDefiningClassLoader cdcl, me.qmx.jitescript.JiteClass jiteClass)
    • classNameFromJiteClass

      private static String classNameFromJiteClass(me.qmx.jitescript.JiteClass jiteClass)
    • varList

      private static String[] varList(int size)