Top Fields Constructors Methods
org.jruby.ast.executable

public Class RuntimeCache

extends Object
Class Inheritance
Imports
org.jcodings.EncodingDB, .Encoding, org.jruby.runtime.opto.ConstantCache, .Invalidator, java.math.BigInteger, java.util.Arrays, org.jruby.Ruby, .RubyClass, .RubyFixnum, .RubyFloat, .RubyModule, .RubyRegexp, .RubyString, .RubySymbol, org.jruby.runtime.ivars.VariableAccessor, org.jruby.internal.runtime.methods.DynamicMethod, .UndefinedMethod, org.jruby.runtime.Helpers, .CallSite, .CallType, .MethodIndex, .ThreadContext, org.jruby.parser.StaticScope, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.callsite.CacheEntry, org.jruby.util.ByteList, .DefinedMessage, .RegexpOptions

Field Summary

Modifier and TypeField and Description
private static final int
public BigInteger[]
public ByteList[]
public CallSite[]
private static final int
public ConstantCache[]
private static final BigInteger[]
private static final ByteList[]
private static final CacheEntry[]
private static final CallSite[]
private static final Encoding[]
private static final RubyFixnum[]
private static final RubyFloat[]
private static final RubyRegexp[]
private static final RubySymbol[]
private static final StaticScope[]
private static final RubyString[]
private static final VariableAccessor[]
private static final int
public Encoding[]
private static final int
public RubyFixnum[]
private static final int
public RubyFloat[]
private static final int
public RubyString[]
private static final int
public CacheEntry[]
private static final int
public RubyRegexp[]
private static final int
public StaticScope[]
private static final int
private static final int
public RubySymbol[]
private static final int
public VariableAccessor[]
private static final int
public VariableAccessor[]

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private CacheEntry
cacheAndGet(ThreadContext context, RubyClass selfType, int index, String methodName)

public final RubyRegexp
cacheRegexp(int index, RubyString pattern, int options)
Deprecated since 10.0.

public final RubyRegexp
cacheRegexp(int index, RubyRegexp regexp)
Deprecated since 10.0.

public final BigInteger
getBigInteger(int index, String pattern)

public final ByteList
getByteList(int index)

private CacheEntry
getCacheEntry(int index)

public final CallSite
getCallSite(int index)

public final IRubyObject
getConstant(ThreadContext context, StaticScope scope, String name, int index)

public final IRubyObject
getConstantDefined(ThreadContext context, StaticScope scope, String name, int index)

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

private static int
getDescriptorValue(String descriptor, int type)

public final Encoding
getEncoding(int index)

public final RubyFixnum
getFixnum(ThreadContext context, int index, int value)

public final RubyFixnum
getFixnum(ThreadContext context, int index, long value)

public final RubyFloat
getFloat(ThreadContext context, int index, double value)

public final RubyString
getFrozenString(ThreadContext context, int bytelistIndex, int stringIndex, int codeRange)

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

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

public CacheEntry
getMethodEntry(ThreadContext context, RubyClass selfType, int index, String methodName)

public final RubyRegexp
getRegexp(ThreadContext context, int index, ByteList pattern, int options)

public final RubyRegexp
getRegexp(int index)

public final StaticScope
getScope(ThreadContext context, StaticScope parent, String varNamesDescriptor, int index)

public final StaticScope
getScope(int index)

public final RubyString
getString(ThreadContext context, int index, int codeRange)

public final RubySymbol
getSymbol(ThreadContext context, int index, String name, String encodingName)

private final IRubyObject
getValue(ThreadContext context, int index, String name, IRubyObject object)

public IRubyObject
getValue(ThreadContext context, StaticScope scope, String name, int index)

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

public final IRubyObject
getVariable(ThreadContext context, int index, String name, IRubyObject object)

public final IRubyObject
getVariableDefined(ThreadContext context, int index, String name, IRubyObject object)

public final void
initBigIntegers(int size)

public final void
initCallSites(int size)

public final void
initConstants(int size)

public final Encoding[]
initEncodings(int size)

public final void
initFixnums(int size)

public final void
initFloats(int size)

public final void
initFromDescriptor(String
The descriptor to use for populating call sites and caches
descriptor
)

Given a packed descriptor listing methods and their type, populate the call site cache.

public final RubyString[]
public final void
initMethodCache(int size)

public final void
initOthers(String
The descriptor to use for preparing caches
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
public final void
initRegexps(int size)

public final void
initScopes(int size)

public final ByteList[]
initStrings(int size)

public final void
initSymbols(int size)

public final void
public final void
private static RubyClass
public IRubyObject
reCache(ThreadContext context, StaticScope scope, String name, int index)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

private DynamicMethod
private DynamicMethod
searchWithCacheNoMethodMissing(RubyClass clazz, int index, String name1, String name2)

public final DynamicMethod
public final DynamicMethod
public final IRubyObject
setVariable(int index, String name, IRubyObject object, IRubyObject value)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

BIGINTEGERback to summary
private static final int BIGINTEGER
bigIntegersback to summary
public BigInteger[] bigIntegers
byteListsback to summary
public ByteList[] byteLists
callSitesback to summary
public CallSite[] callSites
CONSTANTback to summary
private static final int CONSTANT
constantsback to summary
public ConstantCache[] constants
EMPTY_BIGINTEGERSback to summary
private static final BigInteger[] EMPTY_BIGINTEGERS
EMPTY_BYTELISTSback to summary
private static final ByteList[] EMPTY_BYTELISTS
EMPTY_CACHEENTRIESback to summary
private static final CacheEntry[] EMPTY_CACHEENTRIES
EMPTY_CALLSITESback to summary
private static final CallSite[] EMPTY_CALLSITES
EMPTY_ENCODINGSback to summary
private static final Encoding[] EMPTY_ENCODINGS
EMPTY_FIXNUMSback to summary
private static final RubyFixnum[] EMPTY_FIXNUMS
EMPTY_FLOATSback to summary
private static final RubyFloat[] EMPTY_FLOATS
EMPTY_RUBYREGEXPSback to summary
private static final RubyRegexp[] EMPTY_RUBYREGEXPS
EMPTY_RUBYSYMBOLSback to summary
private static final RubySymbol[] EMPTY_RUBYSYMBOLS
EMPTY_SCOPESback to summary
private static final StaticScope[] EMPTY_SCOPES
EMPTY_STRINGSback to summary
private static final RubyString[] EMPTY_STRINGS
EMPTY_VARIABLE_ACCESSORSback to summary
private static final VariableAccessor[] EMPTY_VARIABLE_ACCESSORS
ENCODINGback to summary
private static final int ENCODING
encodingsback to summary
public Encoding[] encodings
FIXNUMback to summary
private static final int FIXNUM
fixnumsback to summary
public RubyFixnum[] fixnums
FLOATback to summary
private static final int FLOAT
floatsback to summary
public RubyFloat[] floats
FROZEN_STRINGback to summary
private static final int FROZEN_STRING
frozenStringsback to summary
public RubyString[] frozenStrings
METHODback to summary
private static final int METHOD
methodCacheback to summary
public CacheEntry[] methodCache
REGEXPback to summary
private static final int REGEXP
regexpsback to summary
public RubyRegexp[] regexps
SCOPEback to summary
private static final int SCOPE
scopesback to summary
public StaticScope[] scopes
STRINGback to summary
private static final int STRING
SYMBOLback to summary
private static final int SYMBOL
symbolsback to summary
public RubySymbol[] symbols
VARIABLEREADERback to summary
private static final int VARIABLEREADER
variableReadersback to summary
public VariableAccessor[] variableReaders
VARIABLEWRITERback to summary
private static final int VARIABLEWRITER
variableWritersback to summary
public VariableAccessor[] variableWriters

Constructor Detail

RuntimeCacheback to summary
public RuntimeCache()

Method Detail

cacheAndGetback to summary
private CacheEntry cacheAndGet(ThreadContext context, RubyClass selfType, int index, String methodName)
cacheRegexpback to summary
public final RubyRegexp cacheRegexp(int index, RubyString pattern, int options)

Deprecated

since 10.0.

Annotations
@Deprecated
since:10.0
cacheRegexpback to summary
public final RubyRegexp cacheRegexp(int index, RubyRegexp regexp)

Deprecated

since 10.0.

Annotations
@Deprecated
since:10.0
getBigIntegerback to summary
public final BigInteger getBigInteger(int index, String pattern)
getByteListback to summary
public final ByteList getByteList(int index)
getCacheEntryback to summary
private CacheEntry getCacheEntry(int index)
getCallSiteback to summary
public final CallSite getCallSite(int index)
getConstantback to summary
public final IRubyObject getConstant(ThreadContext context, StaticScope scope, String name, int index)
getConstantDefinedback to summary
public final IRubyObject getConstantDefined(ThreadContext context, StaticScope scope, String name, int index)
getConstantFromback to summary
public final IRubyObject getConstantFrom(RubyModule target, ThreadContext context, String name, int index)
getDescriptorValueback to summary
private static int getDescriptorValue(String descriptor, int type)
getEncodingback to summary
public final Encoding getEncoding(int index)
getFixnumback to summary
public final RubyFixnum getFixnum(ThreadContext context, int index, int value)
getFixnumback to summary
public final RubyFixnum getFixnum(ThreadContext context, int index, long value)
getFloatback to summary
public final RubyFloat getFloat(ThreadContext context, int index, double value)
getFrozenStringback to summary
public final RubyString getFrozenString(ThreadContext context, int bytelistIndex, int stringIndex, int codeRange)
getMethodback to summary
public DynamicMethod getMethod(ThreadContext context, RubyClass selfType, int index, String methodName)
getMethodback to summary
public DynamicMethod getMethod(ThreadContext context, IRubyObject self, int index, String methodName)
getMethodEntryback to summary
public CacheEntry getMethodEntry(ThreadContext context, RubyClass selfType, int index, String methodName)
getRegexpback to summary
public final RubyRegexp getRegexp(ThreadContext context, int index, ByteList pattern, int options)
getRegexpback to summary
public final RubyRegexp getRegexp(int index)
getScopeback to summary
public final StaticScope getScope(ThreadContext context, StaticScope parent, String varNamesDescriptor, int index)
getScopeback to summary
public final StaticScope getScope(int index)
getStringback to summary
public final RubyString getString(ThreadContext context, int index, int codeRange)
getSymbolback to summary
public final RubySymbol getSymbol(ThreadContext context, int index, String name, String encodingName)
getValueback to summary
private final IRubyObject getValue(ThreadContext context, int index, String name, IRubyObject object)
getValueback to summary
public IRubyObject getValue(ThreadContext context, StaticScope scope, String name, int index)
getValueFromback to summary
public IRubyObject getValueFrom(RubyModule target, ThreadContext context, String name, int index)
getVariableback to summary
public final IRubyObject getVariable(ThreadContext context, int index, String name, IRubyObject object)
getVariableDefinedback to summary
public final IRubyObject getVariableDefined(ThreadContext context, int index, String name, IRubyObject object)
initBigIntegersback to summary
public final void initBigIntegers(int size)
initCallSitesback to summary
public final void initCallSites(int size)
initConstantsback to summary
public final void initConstants(int size)
initEncodingsback to summary
public final Encoding[] initEncodings(int size)
initFixnumsback to summary
public final void initFixnums(int size)
initFloatsback to summary
public final void initFloats(int size)
initFromDescriptorback to summary
public final void initFromDescriptor(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:String

The descriptor to use for populating call sites and caches

initFrozenStringsback to summary
public final RubyString[] initFrozenStrings(int size)
initMethodCacheback to summary
public final void initMethodCache(int size)
initOthersback to summary
public final void initOthers(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
Parameters
descriptor:String

The descriptor to use for preparing caches

initRegexpsback to summary
public final void initRegexps(int size)
initScopesback to summary
public final void initScopes(int size)
initStringsback to summary
public final ByteList[] initStrings(int size)
initSymbolsback to summary
public final void initSymbols(int size)
initVariableReadersback to summary
public final void initVariableReaders(int size)
initVariableWritersback to summary
public final void initVariableWriters(int size)
pollAndGetClassback to summary
private static RubyClass pollAndGetClass(ThreadContext context, IRubyObject self)
reCacheback to summary
public IRubyObject reCache(ThreadContext context, StaticScope scope, String name, int index)
reCacheFromback to summary
public IRubyObject reCacheFrom(RubyModule target, ThreadContext context, String name, int index)
searchWithCacheback to summary
public DynamicMethod searchWithCache(RubyClass clazz, int index, String name1)
searchWithCacheback to summary
public DynamicMethod searchWithCache(RubyClass clazz, int index, String name1, String name2)
searchWithCacheback to summary
public DynamicMethod searchWithCache(RubyClass clazz, int index, String name1, String name2, String name3)
searchWithCacheback to summary
public DynamicMethod searchWithCache(RubyClass clazz, int index, String name1, String name2, String name3, String name4)
searchWithCacheback to summary
public DynamicMethod searchWithCache(RubyClass clazz, int index, String name1, String name2, String name3, String name4, String name5)
searchWithCacheback to summary
public DynamicMethod searchWithCache(RubyClass clazz, int index, String name1, String name2, String name3, String name4, String name5, String name6)
searchWithCacheback to summary
public DynamicMethod searchWithCache(RubyClass clazz, int index, String name1, String name2, String name3, String name4, String name5, String name6, String name7)
searchWithCacheback to summary
public DynamicMethod searchWithCache(RubyClass clazz, int index, String name1, String name2, String name3, String name4, String name5, String name6, String name7, String name8)
searchWithCacheback to summary
public DynamicMethod searchWithCache(IRubyObject obj, int index, String name1)
searchWithCacheback to summary
public DynamicMethod searchWithCache(IRubyObject obj, int index, String name1, String name2)
searchWithCacheback to summary
public DynamicMethod searchWithCache(IRubyObject obj, int index, String name1, String name2, String name3)
searchWithCacheback to summary
public DynamicMethod searchWithCache(IRubyObject obj, int index, String name1, String name2, String name3, String name4)
searchWithCacheback to summary
public DynamicMethod searchWithCache(IRubyObject obj, int index, String name1, String name2, String name3, String name4, String name5)
searchWithCacheback to summary
public DynamicMethod searchWithCache(IRubyObject obj, int index, String name1, String name2, String name3, String name4, String name5, String name6)
searchWithCacheback to summary
public DynamicMethod searchWithCache(IRubyObject obj, int index, String name1, String name2, String name3, String name4, String name5, String name6, String name7)
searchWithCacheback to summary
public DynamicMethod searchWithCache(IRubyObject obj, int index, String name1, String name2, String name3, String name4, String name5, String name6, String name7, String name8)
searchWithCacheNoMethodMissingback to summary
private DynamicMethod searchWithCacheNoMethodMissing(RubyClass clazz, int index, String name1)
searchWithCacheNoMethodMissingback to summary
private DynamicMethod searchWithCacheNoMethodMissing(RubyClass clazz, int index, String name1, String name2)
searchWithCacheNoMethodMissingback to summary
public final DynamicMethod searchWithCacheNoMethodMissing(IRubyObject obj, int index, String name1)
searchWithCacheNoMethodMissingback to summary
public final DynamicMethod searchWithCacheNoMethodMissing(IRubyObject obj, int index, String name1, String name2)
setVariableback to summary
public final IRubyObject setVariable(int index, String name, IRubyObject object, IRubyObject value)