private Invalidator invalidator(Ruby runtime) { if (invalidator == null) { invalidator = runtime.getConstantInvalidator(constName); } return invalidator; } }
private Invalidator invalidator(Ruby runtime) { if (invalidator == null) { invalidator = runtime.getConstantInvalidator(constName); } return invalidator; } }
private Invalidator invalidator(Ruby runtime) { if (invalidator == null) { invalidator = runtime.getConstantInvalidator(constName); } return invalidator; } }
protected void invalidateConstantCaches(Set<String> constantNames) { if (constantNames.size() > 0) { Ruby runtime = getRuntime(); List<Invalidator> constantInvalidators = new ArrayList<>(constantNames.size()); for (String name : constantNames) { constantInvalidators.add(runtime.getConstantInvalidator(name)); } constantInvalidators.get(0).invalidateAll(constantInvalidators); } }
protected void invalidateConstantCaches(Set<String> constantNames) { if (constantNames.size() > 0) { Ruby runtime = getRuntime(); List<Invalidator> constantInvalidators = new ArrayList<>(constantNames.size()); for (String name : constantNames) { constantInvalidators.add(runtime.getConstantInvalidator(name)); } constantInvalidators.get(0).invalidateAll(constantInvalidators); } }
public IRubyObject reCache(ThreadContext context, StaticScope scope, String name, int index) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = scope.getConstant(name); if (value != null) { constants[index] = new ConstantCache(value, newGeneration, invalidator); } else { constants[index] = null; } return value; }
public IRubyObject reCache(ThreadContext context, StaticScope scope, String name, int index) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = scope.getConstant(name); if (value != null) { constants[index] = new ConstantCache(value, newGeneration, invalidator); } else { constants[index] = null; } return value; }
public IRubyObject reCache(ThreadContext context, StaticScope scope, String name, int index) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = scope.getConstant(name); if (value != null) { constants[index] = new ConstantCache(value, newGeneration, invalidator); } else { constants[index] = null; } return value; }
public IRubyObject reCache(ThreadContext context, StaticScope scope, String name, int index) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = scope.getConstant(name); if (value != null) { constants[index] = new ConstantCache(value, newGeneration, invalidator); } else { constants[index] = null; } return value; }
public IRubyObject reCacheFrom(RubyModule target, ThreadContext context, String name, int index) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = target.getConstantFromNoConstMissing(name, false); if (value != null) { constants[index] = new ConstantCache(value, newGeneration, invalidator, target.hashCode()); } else { constants[index] = null; } return value; }
public IRubyObject reCacheFrom(RubyModule target, ThreadContext context, String name, int index) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = target.getConstantFromNoConstMissing(name, false); if (value != null) { constants[index] = new ConstantCache(value, newGeneration, invalidator, target.hashCode()); } else { constants[index] = null; } return value; }
public IRubyObject reCache(ThreadContext context, RubyModule target) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = target.getConstantFromNoConstMissing(name, false); if (value != null) { cache = new ConstantCache(value, newGeneration, invalidator, target.hashCode()); } else { cache = null; } return value; } }
public IRubyObject reCacheFrom(RubyModule target, ThreadContext context, String name, int index) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = target.getConstantFromNoConstMissing(name, false); if (value != null) { constants[index] = new ConstantCache(value, newGeneration, invalidator, target.hashCode()); } else { constants[index] = null; } return value; }
private Object cache(Ruby runtime, RubyModule module) { Object constant = noPrivateConsts ? module.getConstantFromNoConstMissing(constName, false) : module.getConstantNoConstMissing(constName); if (constant == null) { constant = UndefinedValue.UNDEFINED; } else { // recache generation = runtime.getConstantInvalidator(constName).getData(); hash = module.hashCode(); cachedConstant = constant; } return constant; }
public IRubyObject reCache(ThreadContext context, String name) { Invalidator invalidator = context.runtime.getConstantInvalidator(name); Object newGeneration = invalidator.getData(); IRubyObject value = context.getCurrentStaticScope().getConstant(name); this.name = name; if (value != null) { cache = new ConstantCache(value, newGeneration, invalidator); } else { cache = null; } return value; } }
private Object cache(Ruby runtime, RubyModule module) { String id = getId(); Object constant = module.getConstantNoConstMissingSkipAutoload(id); if (constant == null) { constant = UndefinedValue.UNDEFINED; } else { // recache Invalidator invalidator = runtime.getConstantInvalidator(id); cache = new ConstantCache((IRubyObject)constant, invalidator.getData(), invalidator, module.hashCode()); } return constant; }
private Object cache(Ruby runtime, RubyModule module) { String id = getId(); Object constant = noPrivateConsts ? module.getConstantFromNoConstMissing(id, false) : module.getConstantNoConstMissing(id); if (constant != null) { Invalidator invalidator = runtime.getConstantInvalidator(id); cache = new ConstantCache((IRubyObject)constant, invalidator.getData(), invalidator, module.hashCode()); } return constant; }
private Object cache(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) { StaticScope staticScope = (StaticScope) getDefiningScope().retrieve(context, self, currScope, currDynScope, temp); String id = getId(); IRubyObject constant = staticScope.getConstantDefined(id); if (constant == null) { constant = UndefinedValue.UNDEFINED; } else { // recache Invalidator invalidator = context.runtime.getConstantInvalidator(id); cache = new ConstantCache(constant, invalidator.getData(), invalidator); } return constant; }
private Object cache(Ruby runtime, RubyModule module) { String id = getId(); Object constant = noPrivateConsts ? module.getConstantFromNoConstMissing(id, false) : module.getConstantNoConstMissing(id); if (constant != null) { Invalidator invalidator = runtime.getConstantInvalidator(id); cache = new ConstantCache((IRubyObject)constant, invalidator.getData(), invalidator, module.hashCode()); } return constant; }
private void bind(Ruby runtime, RubyModule module, IRubyObject constant, MethodHandle cachingFallback) { MethodHandle target = Binder.from(type()) .drop(0, 2) .constant(constant); // Get appropriate fallback given state of site MethodHandle fallback = getFallback(module, cachingFallback); // Test that module is same as before target = guardWithTest(module.getIdTest(), target, fallback); // Global invalidation SwitchPoint switchPoint = (SwitchPoint) runtime.getConstantInvalidator(name).getData(); target = switchPoint.guardWithTest(target, fallback); setTarget(target); }