org.jruby.RubyClass.discoverInstanceVariables()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(2.6k)|赞(0)|评价(0)|浏览(72)

本文整理了Java中org.jruby.RubyClass.discoverInstanceVariables方法的一些代码示例,展示了RubyClass.discoverInstanceVariables的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyClass.discoverInstanceVariables方法的具体详情如下:
包路径:org.jruby.RubyClass
类名称:RubyClass
方法名:discoverInstanceVariables

RubyClass.discoverInstanceVariables介绍

暂无

代码示例

代码示例来源:origin: org.jruby/jruby-complete

@Override
  public IRubyObject allocate(Ruby runtime, RubyClass klass) {
    Set<String> foundVariables = klass.discoverInstanceVariables();
    if (Options.DUMP_INSTANCE_VARS.load()) {
      System.err.println(klass + ";" + foundVariables);
    }
    ObjectAllocator allocator = RubyObjectSpecializer.specializeForVariables(klass, foundVariables);
    // invalidate metaclass so new allocator is picked up for specialized .new
    klass.getMetaClass().invalidateCacheDescendants();
    return allocator.allocate(runtime, klass);
  }
};

代码示例来源:origin: org.jruby/jruby-core

@Override
  public IRubyObject allocate(Ruby runtime, RubyClass klass) {
    Set<String> foundVariables = klass.discoverInstanceVariables();
    if (Options.DUMP_INSTANCE_VARS.load()) {
      System.err.println(klass + ";" + foundVariables);
    }
    ObjectAllocator allocator = RubyObjectSpecializer.specializeForVariables(klass, foundVariables);
    // invalidate metaclass so new allocator is picked up for specialized .new
    klass.getMetaClass().invalidateCacheDescendants();
    return allocator.allocate(runtime, klass);
  }
};

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

public IRubyObject allocate(Ruby runtime, RubyClass klass) {
    Set<String> foundVariables = klass.discoverInstanceVariables();
    if (Options.DUMP_INSTANCE_VARS.load()) {
      System.err.println(klass + ";" + foundVariables);
    }
    
    int count = 0;
    for (String name : foundVariables) {
      klass.getVariableTableManager().getVariableAccessorForVar(name, count);
      count++;
      if (count >= 10) break;
    }
    
    ObjectAllocator allocator = FIELD_ALLOCATORS[count];
    Class reified = FIELD_ALLOCATED_CLASSES[count];
    klass.setAllocator(allocator);
    klass.setReifiedClass(reified);
    
    return allocator.allocate(runtime, klass);
  }
};

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

public IRubyObject allocate(Ruby runtime, RubyClass klass) {
    Set<String> foundVariables = klass.discoverInstanceVariables();
    if (Options.DUMP_INSTANCE_VARS.load()) {
      System.err.println(klass + ";" + foundVariables);
    }
    
    int count = 0;
    for (String name : foundVariables) {
      klass.getVariableTableManager().getVariableAccessorForVar(name, count);
      count++;
      if (count >= 10) break;
    }
    
    ObjectAllocator allocator = FIELD_ALLOCATORS[count];
    Class reified = FIELD_ALLOCATED_CLASSES[count];
    klass.setAllocator(allocator);
    klass.setReifiedClass(reified);
    
    return allocator.allocate(runtime, klass);
  }
};

相关文章

微信公众号

最新文章

更多

RubyClass类方法