org.jruby.ast.executable
Class RuntimeCache

java.lang.Object
  extended by org.jruby.ast.executable.RuntimeCache

public class RuntimeCache
extends java.lang.Object


Field Summary
 java.math.BigInteger[] bigIntegers
           
 BlockBody[] blockBodies
           
 CompiledBlockCallback[] blockCallbacks
           
 org.jruby.util.ByteList[] byteLists
           
 CallSite[] callSites
           
 int[] constantGenerations
           
 IRubyObject[] constants
           
 int[] constantTargetHashes
           
 org.jcodings.Encoding[] encodings
           
 RubyFixnum[] fixnums
           
 RubyFloat[] floats
           
 CacheEntry[] methodCache
           
 RubyRegexp[] regexps
           
 StaticScope[] scopes
           
 RubySymbol[] symbols
           
 RubyClass.VariableAccessor[] variableReaders
           
 RubyClass.VariableAccessor[] variableWriters
           
 
Constructor Summary
RuntimeCache()
           
 
Method Summary
 RubyRegexp cacheRegexp(int index, RubyString pattern, int options)
           
 java.math.BigInteger getBigInteger(Ruby runtime, int index, java.lang.String pattern)
           
 BlockBody getBlockBody(java.lang.Object scriptObject, ThreadContext context, int index, java.lang.String descriptor)
          descriptor format is closure_method_name,arity,varname1;varname2;varname3,has_multi_args_head,arg_type,light
 BlockBody getBlockBody19(java.lang.Object scriptObject, ThreadContext context, int index, java.lang.String descriptor)
          descriptor format is closure_method_name,arity,varname1;varname2;varname3,has_multi_args_head,arg_type,light
 CompiledBlockCallback getBlockCallback(java.lang.Object scriptObject, Ruby runtime, int index, java.lang.String method)
           
 org.jruby.util.ByteList getByteList(int index)
           
 CallSite getCallSite(int index)
           
 IRubyObject getConstant(ThreadContext context, java.lang.String name, int index)
           
 IRubyObject getConstantFrom(RubyModule target, ThreadContext context, java.lang.String name, int index)
           
 org.jcodings.Encoding getEncoding(int index)
           
 RubyFixnum getFixnum(Ruby runtime, int index, int value)
           
 RubyFixnum getFixnum(Ruby runtime, int index, long value)
           
 RubyFloat getFloat(Ruby runtime, int index, double value)
           
 DynamicMethod getMethod(ThreadContext context, IRubyObject self, int index, java.lang.String methodName)
           
 DynamicMethod getMethod(ThreadContext context, RubyClass selfType, int index, java.lang.String methodName)
           
 RubyRegexp getRegexp(int index)
           
 RubyRegexp getRegexp(Ruby runtime, int index, org.jruby.util.ByteList pattern, int options)
           
 StaticScope getScope(ThreadContext context, java.lang.String varNamesDescriptor, int index)
           
 RubyString getString(Ruby runtime, int index, int codeRange)
           
 RubySymbol getSymbol(Ruby runtime, int index, java.lang.String name)
           
 IRubyObject getValue(ThreadContext context, java.lang.String name, int index)
           
 IRubyObject getValueFrom(RubyModule target, ThreadContext context, java.lang.String name, int index)
           
 IRubyObject getVariable(Ruby runtime, int index, java.lang.String name, IRubyObject object)
           
 void initBigIntegers(int size)
           
 void initBlockBodies(int size)
           
 void initBlockCallbacks(int size)
           
 void initCallSites(int size)
           
 void initConstants(int size)
           
 org.jcodings.Encoding[] initEncodings(int size)
           
 void initFixnums(int size)
           
 void initFloats(int size)
           
 void initFromDescriptor(java.lang.String descriptor)
          Given a packed descriptor listing methods and their type, populate the call site cache.
 void initMethodCache(int size)
           
 void initOthers(java.lang.String descriptor)
          Given a packed descriptor of other cache sizes, construct the cache arrays The format of the descriptor is the actual size cast to char in this order: scopeCount inheritedSymbolCount inheritedFixnumCount inheritedConstantCount inheritedRegexpCount inheritedBigIntegerCount inheritedVariableReaderCount inheritedVariableWriterCount inheritedBlockBodyCount inheritedBlockCallbackCount inheritedMethodCount inheritedStringCount
 void initRegexps(int size)
           
 void initScopes(int size)
           
 org.jruby.util.ByteList[] initStrings(int size)
           
 void initSymbols(int size)
           
 void initVariableReaders(int size)
           
 void initVariableWriters(int size)
           
 IRubyObject reCache(ThreadContext context, java.lang.String name, int index)
           
 IRubyObject reCacheFrom(RubyModule target, ThreadContext context, java.lang.String name, int index)
           
 DynamicMethod searchWithCache(IRubyObject obj, int index, java.lang.String name1)
           
 DynamicMethod searchWithCache(IRubyObject obj, int index, java.lang.String name1, java.lang.String name2)
           
 DynamicMethod searchWithCache(IRubyObject obj, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3)
           
 DynamicMethod searchWithCache(IRubyObject obj, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4)
           
 DynamicMethod searchWithCache(IRubyObject obj, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4, java.lang.String name5)
           
 DynamicMethod searchWithCache(IRubyObject obj, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4, java.lang.String name5, java.lang.String name6)
           
 DynamicMethod searchWithCache(IRubyObject obj, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4, java.lang.String name5, java.lang.String name6, java.lang.String name7)
           
 DynamicMethod searchWithCache(IRubyObject obj, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4, java.lang.String name5, java.lang.String name6, java.lang.String name7, java.lang.String name8)
           
 DynamicMethod searchWithCache(RubyClass clazz, int index, java.lang.String name1)
           
 DynamicMethod searchWithCache(RubyClass clazz, int index, java.lang.String name1, java.lang.String name2)
           
 DynamicMethod searchWithCache(RubyClass clazz, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3)
           
 DynamicMethod searchWithCache(RubyClass clazz, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4)
           
 DynamicMethod searchWithCache(RubyClass clazz, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4, java.lang.String name5)
           
 DynamicMethod searchWithCache(RubyClass clazz, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4, java.lang.String name5, java.lang.String name6)
           
 DynamicMethod searchWithCache(RubyClass clazz, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4, java.lang.String name5, java.lang.String name6, java.lang.String name7)
           
 DynamicMethod searchWithCache(RubyClass clazz, int index, java.lang.String name1, java.lang.String name2, java.lang.String name3, java.lang.String name4, java.lang.String name5, java.lang.String name6, java.lang.String name7, java.lang.String name8)
           
 IRubyObject setVariable(Ruby runtime, int index, java.lang.String name, IRubyObject object, IRubyObject value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

scopes

public StaticScope[] scopes

callSites

public CallSite[] callSites

methodCache

public CacheEntry[] methodCache

blockBodies

public BlockBody[] blockBodies

blockCallbacks

public CompiledBlockCallback[] blockCallbacks

symbols

public RubySymbol[] symbols

byteLists

public org.jruby.util.ByteList[] byteLists

encodings

public org.jcodings.Encoding[] encodings

fixnums

public RubyFixnum[] fixnums

floats

public RubyFloat[] floats

regexps

public RubyRegexp[] regexps

bigIntegers

public java.math.BigInteger[] bigIntegers

variableReaders

public RubyClass.VariableAccessor[] variableReaders

variableWriters

public RubyClass.VariableAccessor[] variableWriters

constants

public IRubyObject[] constants

constantGenerations

public int[] constantGenerations

constantTargetHashes

public int[] constantTargetHashes
Constructor Detail

RuntimeCache

public RuntimeCache()
Method Detail

getScope

public final StaticScope getScope(ThreadContext context,
                                  java.lang.String varNamesDescriptor,
                                  int index)

getCallSite

public final CallSite getCallSite(int index)

getBlockBody

public final BlockBody getBlockBody(java.lang.Object scriptObject,
                                    ThreadContext context,
                                    int index,
                                    java.lang.String descriptor)
descriptor format is closure_method_name,arity,varname1;varname2;varname3,has_multi_args_head,arg_type,light

Parameters:
context -
index -
descriptor -
Returns:

getBlockBody19

public final BlockBody getBlockBody19(java.lang.Object scriptObject,
                                      ThreadContext context,
                                      int index,
                                      java.lang.String descriptor)
descriptor format is closure_method_name,arity,varname1;varname2;varname3,has_multi_args_head,arg_type,light

Parameters:
context -
index -
descriptor -
Returns:

getBlockCallback

public final CompiledBlockCallback getBlockCallback(java.lang.Object scriptObject,
                                                    Ruby runtime,
                                                    int index,
                                                    java.lang.String method)

getSymbol

public final RubySymbol getSymbol(Ruby runtime,
                                  int index,
                                  java.lang.String name)

getString

public final RubyString getString(Ruby runtime,
                                  int index,
                                  int codeRange)

getByteList

public final org.jruby.util.ByteList getByteList(int index)

getEncoding

public final org.jcodings.Encoding getEncoding(int index)

getFixnum

public final RubyFixnum getFixnum(Ruby runtime,
                                  int index,
                                  int value)

getFixnum

public final RubyFixnum getFixnum(Ruby runtime,
                                  int index,
                                  long value)

getFloat

public final RubyFloat getFloat(Ruby runtime,
                                int index,
                                double value)

getRegexp

public final RubyRegexp getRegexp(Ruby runtime,
                                  int index,
                                  org.jruby.util.ByteList pattern,
                                  int options)

getRegexp

public final RubyRegexp getRegexp(int index)

cacheRegexp

public final RubyRegexp cacheRegexp(int index,
                                    RubyString pattern,
                                    int options)

getBigInteger

public final java.math.BigInteger getBigInteger(Ruby runtime,
                                                int index,
                                                java.lang.String pattern)

getVariable

public final IRubyObject getVariable(Ruby runtime,
                                     int index,
                                     java.lang.String name,
                                     IRubyObject object)

setVariable

public final IRubyObject setVariable(Ruby runtime,
                                     int index,
                                     java.lang.String name,
                                     IRubyObject object,
                                     IRubyObject value)

initScopes

public final void initScopes(int size)

initCallSites

public final void initCallSites(int size)

initFromDescriptor

public final void initFromDescriptor(java.lang.String descriptor)
Given a packed descriptor listing methods and their type, populate the call site cache. The format of the methods portion of the descriptor is name1;type1;name2;type2 where type1 and type2 are a single capital letter N, F, V, or S for the four main call types. After the method portion, the other cache sizes are provided as a packed String of char values representing the numeric sizes. @see RuntimeCache#initOthers.

Parameters:
descriptor - The descriptor to use for populating call sites and caches

initOthers

public final void initOthers(java.lang.String descriptor)
Given a packed descriptor of other cache sizes, construct the cache arrays The format of the descriptor is the actual size cast to char in this order:
  1. scopeCount
  2. inheritedSymbolCount
  3. inheritedFixnumCount
  4. inheritedConstantCount
  5. inheritedRegexpCount
  6. inheritedBigIntegerCount
  7. inheritedVariableReaderCount
  8. inheritedVariableWriterCount
  9. inheritedBlockBodyCount
  10. inheritedBlockCallbackCount
  11. inheritedMethodCount
  12. inheritedStringCount
  13. Parameters:
    descriptor - The descriptor to use for preparing caches

initBlockBodies

public final void initBlockBodies(int size)

initBlockCallbacks

public final void initBlockCallbacks(int size)

initSymbols

public final void initSymbols(int size)

initStrings

public final org.jruby.util.ByteList[] initStrings(int size)

initEncodings

public final org.jcodings.Encoding[] initEncodings(int size)

initFixnums

public final void initFixnums(int size)

initFloats

public final void initFloats(int size)

initRegexps

public final void initRegexps(int size)

initBigIntegers

public final void initBigIntegers(int size)

initConstants

public final void initConstants(int size)

initVariableReaders

public final void initVariableReaders(int size)

initVariableWriters

public final void initVariableWriters(int size)

initMethodCache

public final void initMethodCache(int size)

getConstant

public final IRubyObject getConstant(ThreadContext context,
                                     java.lang.String name,
                                     int index)

getValue

public IRubyObject getValue(ThreadContext context,
                            java.lang.String name,
                            int index)

reCache

public IRubyObject reCache(ThreadContext context,
                           java.lang.String name,
                           int index)

getConstantFrom

public final IRubyObject getConstantFrom(RubyModule target,
                                         ThreadContext context,
                                         java.lang.String name,
                                         int index)

getValueFrom

public IRubyObject getValueFrom(RubyModule target,
                                ThreadContext context,
                                java.lang.String name,
                                int index)

reCacheFrom

public IRubyObject reCacheFrom(RubyModule target,
                               ThreadContext context,
                               java.lang.String name,
                               int index)

getMethod

public DynamicMethod getMethod(ThreadContext context,
                               RubyClass selfType,
                               int index,
                               java.lang.String methodName)

getMethod

public DynamicMethod getMethod(ThreadContext context,
                               IRubyObject self,
                               int index,
                               java.lang.String methodName)

searchWithCache

public DynamicMethod searchWithCache(RubyClass clazz,
                                     int index,
                                     java.lang.String name1)

searchWithCache

public DynamicMethod searchWithCache(RubyClass clazz,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2)

searchWithCache

public DynamicMethod searchWithCache(RubyClass clazz,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3)

searchWithCache

public DynamicMethod searchWithCache(RubyClass clazz,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4)

searchWithCache

public DynamicMethod searchWithCache(RubyClass clazz,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4,
                                     java.lang.String name5)

searchWithCache

public DynamicMethod searchWithCache(RubyClass clazz,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4,
                                     java.lang.String name5,
                                     java.lang.String name6)

searchWithCache

public DynamicMethod searchWithCache(RubyClass clazz,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4,
                                     java.lang.String name5,
                                     java.lang.String name6,
                                     java.lang.String name7)

searchWithCache

public DynamicMethod searchWithCache(RubyClass clazz,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4,
                                     java.lang.String name5,
                                     java.lang.String name6,
                                     java.lang.String name7,
                                     java.lang.String name8)

searchWithCache

public DynamicMethod searchWithCache(IRubyObject obj,
                                     int index,
                                     java.lang.String name1)

searchWithCache

public DynamicMethod searchWithCache(IRubyObject obj,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2)

searchWithCache

public DynamicMethod searchWithCache(IRubyObject obj,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3)

searchWithCache

public DynamicMethod searchWithCache(IRubyObject obj,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4)

searchWithCache

public DynamicMethod searchWithCache(IRubyObject obj,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4,
                                     java.lang.String name5)

searchWithCache

public DynamicMethod searchWithCache(IRubyObject obj,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4,
                                     java.lang.String name5,
                                     java.lang.String name6)

searchWithCache

public DynamicMethod searchWithCache(IRubyObject obj,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4,
                                     java.lang.String name5,
                                     java.lang.String name6,
                                     java.lang.String name7)

searchWithCache

public DynamicMethod searchWithCache(IRubyObject obj,
                                     int index,
                                     java.lang.String name1,
                                     java.lang.String name2,
                                     java.lang.String name3,
                                     java.lang.String name4,
                                     java.lang.String name5,
                                     java.lang.String name6,
                                     java.lang.String name7,
                                     java.lang.String name8)


Copyright © 2002-2009 JRuby Team. All Rights Reserved.