Skip to content

Commit

Permalink
Showing 400 changed files with 2,381 additions and 1,370 deletions.
2 changes: 1 addition & 1 deletion core/pom.rb
Original file line number Diff line number Diff line change
@@ -45,7 +45,7 @@
jar 'com.github.jnr:jnr-enxio:0.10', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-x86asm:1.0.2', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-unixsocket:0.10', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-posix:3.0.27', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-posix:3.0.28-SNAPSHOT', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-constants:0.9.0', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-ffi:2.0.7'
jar 'com.github.jnr:jffi:${jffi.version}'
2 changes: 1 addition & 1 deletion core/pom.xml
Original file line number Diff line number Diff line change
@@ -136,7 +136,7 @@ DO NOT MODIFIY - GENERATED CODE
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-posix</artifactId>
<version>3.0.27</version>
<version>3.0.28-SNAPSHOT</version>
<exclusions>
<exclusion>
<artifactId>jnr-ffi</artifactId>
127 changes: 127 additions & 0 deletions core/src/main/java/org/jruby/ReifiedRubyObject.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
/*
***** BEGIN LICENSE BLOCK *****
* Version: EPL 1.0/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Eclipse Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.eclipse.org/legal/epl-v10.html
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the EPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the EPL, the GPL or the LGPL.
***** END LICENSE BLOCK *****/
package org.jruby;

/**
* A RubyObject that provides a direct field for up to ten stored variables, to avoid
* the overhead of creating and managing a separate array and reference.
*/
public abstract class ReifiedRubyObject extends RubyObject {
public ReifiedRubyObject(Ruby runtime, RubyClass metaClass) {
super(runtime, metaClass);
}

@Override
public Object getVariable(int i) {
return super.getVariable(i);
}

@Override
public void setVariable(int index, Object value) {
super.setVariable(index, value);
}

public Object getVariable0() {
return getVariable(0);
}

public Object getVariable1() {
return getVariable(1);
}

public Object getVariable2() {
return getVariable(2);
}

public Object getVariable3() {
return getVariable(3);
}

public Object getVariable4() {
return getVariable(4);
}

public Object getVariable5() {
return getVariable(5);
}

public Object getVariable6() {
return getVariable(6);
}

public Object getVariable7() {
return getVariable(7);
}

public Object getVariable8() {
return getVariable(8);
}

public Object getVariable9() {
return getVariable(9);
}

public void setVariable0(Object value) {
setVariable(0, value);
}

public void setVariable1(Object value) {
setVariable(1, value);
}

public void setVariable2(Object value) {
setVariable(2, value);
}

public void setVariable3(Object value) {
setVariable(3, value);
}

public void setVariable4(Object value) {
setVariable(4, value);
}

public void setVariable5(Object value) {
setVariable(5, value);
}

public void setVariable6(Object value) {
setVariable(6, value);
}

public void setVariable7(Object value) {
setVariable(7, value);
}

public void setVariable8(Object value) {
setVariable(8, value);
}

public void setVariable9(Object value) {
setVariable(9, value);
}
}
31 changes: 26 additions & 5 deletions core/src/main/java/org/jruby/RubyObjectVar0.java
Original file line number Diff line number Diff line change
@@ -30,18 +30,39 @@
* A RubyObject that provides a direct field for one stored variable, to avoid
* the overhead of creating and managing a separate array and reference.
*/
public class RubyObjectVar0 extends RubyObject {
public class RubyObjectVar0 extends ReifiedRubyObject {
/**
* Standard path for object creation. Objects are entered into ObjectSpace
* only if ObjectSpace is enabled.
*/
public RubyObjectVar0(Ruby runtime, RubyClass metaClass) {
super(runtime, metaClass);
}

public static void setVariableChecked(RubyObjectVar0 self, Object value) {
self.ensureInstanceVariablesSettable();
self.var0 = value;

@Override
public Object getVariable(int i) {
switch (i) {
case 0: return var0;
default: return super.getVariable(i);
}
}

@Override
public void setVariable(int index, Object value) {
ensureInstanceVariablesSettable();
switch (index) {
case 0: var0 = value; break;
default: super.setVariable(index, value);
}
}

public Object getVariable0() {
return var0;
}

public void setVariable0(Object value) {
ensureInstanceVariablesSettable();
var0 = value;
}

public Object var0;
44 changes: 38 additions & 6 deletions core/src/main/java/org/jruby/RubyObjectVar1.java
Original file line number Diff line number Diff line change
@@ -30,19 +30,51 @@
* A RubyObject that provides a direct field for two stored variables, to avoid
* the overhead of creating and managing a separate array and reference.
*/
public class RubyObjectVar1 extends RubyObjectVar0 {
public class RubyObjectVar1 extends ReifiedRubyObject {
/**
* Standard path for object creation. Objects are entered into ObjectSpace
* only if ObjectSpace is enabled.
*/
public RubyObjectVar1(Ruby runtime, RubyClass metaClass) {
super(runtime, metaClass);
}

public static void setVariableChecked(RubyObjectVar1 self, Object value) {
self.ensureInstanceVariablesSettable();
self.var1 = value;

public Object getVariable(int i) {
switch (i) {
case 0: return var0;
case 1: return var1;
default: return super.getVariable(i);
}
}

@Override
public void setVariable(int index, Object value) {
ensureInstanceVariablesSettable();
switch (index) {
case 0: var0 = value; break;
case 1: var1 = value; break;
default: super.setVariable(index, value);
}
}

public Object getVariable0() {
return var0;
}

public Object getVariable1() {
return var1;
}

public void setVariable0(Object value) {
ensureInstanceVariablesSettable();
var0 = value;
}


public void setVariable1(Object value) {
ensureInstanceVariablesSettable();
var1 = value;
}

public Object var0;
public Object var1;
}
56 changes: 50 additions & 6 deletions core/src/main/java/org/jruby/RubyObjectVar2.java
Original file line number Diff line number Diff line change
@@ -30,19 +30,63 @@
* A RubyObject that provides a direct field for three stored variables, to avoid
* the overhead of creating and managing a separate array and reference.
*/
public class RubyObjectVar2 extends RubyObjectVar1 {
public class RubyObjectVar2 extends ReifiedRubyObject {
/**
* Standard path for object creation. Objects are entered into ObjectSpace
* only if ObjectSpace is enabled.
*/
public RubyObjectVar2(Ruby runtime, RubyClass metaClass) {
super(runtime, metaClass);
}

public static void setVariableChecked(RubyObjectVar2 self, Object value) {
self.ensureInstanceVariablesSettable();
self.var2 = value;

public Object getVariable(int i) {
switch (i) {
case 0: return var0;
case 1: return var1;
case 2: return var2;
default: return super.getVariable(i);
}
}

@Override
public void setVariable(int index, Object value) {
ensureInstanceVariablesSettable();
switch (index) {
case 0: var0 = value; break;
case 1: var1 = value; break;
case 2: var2 = value; break;
default: super.setVariable(index, value);
}
}

public Object getVariable0() {
return var0;
}

public Object getVariable1() {
return var1;
}

public Object getVariable2() {
return var2;
}

public void setVariable0(Object value) {
ensureInstanceVariablesSettable();
var0 = value;
}

public void setVariable1(Object value) {
ensureInstanceVariablesSettable();
var1 = value;
}

public void setVariable2(Object value) {
ensureInstanceVariablesSettable();
var2 = value;
}


public Object var0;
public Object var1;
public Object var2;
}
Loading

0 comments on commit 2a1a851

Please sign in to comment.