Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 9a314ffbd451
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: b105728091cb
Choose a head ref
  • 2 commits
  • 2 files changed
  • 1 contributor

Commits on Jun 26, 2015

  1. Copy the full SHA
    5b9f148 View commit details
  2. Copy the full SHA
    b105728 View commit details
Original file line number Diff line number Diff line change
@@ -2153,7 +2153,7 @@ public Object injectNullNoInitial(VirtualFrame frame, RubyArray array, NotProvid
return nil();
}

@Specialization(guards = { "isRubySymbol(symbol)", "isEmptyArray(array)" })
@Specialization(guards = { "isRubySymbol(symbol)", "isEmptyArray(array)", "wasProvided(initial)" })
public Object injectSymbolEmptyArray(VirtualFrame frame, RubyArray array, Object initial, RubyBasicObject symbol, NotProvided block) {
return initial;
}
@@ -2163,7 +2163,7 @@ public Object injectSymbolEmptyArray(VirtualFrame frame, RubyArray array, RubyBa
return nil();
}

@Specialization(guards = { "isRubySymbol(symbol)", "isIntArray(array)", "!isEmptyArray(array)" })
@Specialization(guards = { "isRubySymbol(symbol)", "isIntArray(array)", "!isEmptyArray(array)", "wasProvided(initial)" })
public Object injectSymbolIntArray(VirtualFrame frame, RubyArray array, Object initial, RubyBasicObject symbol, NotProvided block) {
return injectSymbolHelper(frame, ArrayMirror.reflect((int[]) ArrayNodes.getStore(array)), array, initial, symbol, 0);
}
@@ -2175,7 +2175,7 @@ public Object injectSymbolIntArray(VirtualFrame frame, RubyArray array, RubyBasi
return injectSymbolHelper(frame, mirror, array, mirror.get(0), symbol, 1);
}

@Specialization(guards = { "isRubySymbol(symbol)", "isLongArray(array)", "!isEmptyArray(array)" })
@Specialization(guards = { "isRubySymbol(symbol)", "isLongArray(array)", "!isEmptyArray(array)", "wasProvided(initial)" })
public Object injectSymbolLongArray(VirtualFrame frame, RubyArray array, Object initial, RubyBasicObject symbol, NotProvided block) {
return injectSymbolHelper(frame, ArrayMirror.reflect((long[]) ArrayNodes.getStore(array)), array, initial, symbol, 0);
}
@@ -2187,7 +2187,7 @@ public Object injectSymbolLongArray(VirtualFrame frame, RubyArray array, RubyBas
return injectSymbolHelper(frame, mirror, array, mirror.get(0), symbol, 1);
}

@Specialization(guards = { "isRubySymbol(symbol)", "isDoubleArray(array)", "!isEmptyArray(array)" })
@Specialization(guards = { "isRubySymbol(symbol)", "isDoubleArray(array)", "!isEmptyArray(array)", "wasProvided(initial)" })
public Object injectSymbolDoubleArray(VirtualFrame frame, RubyArray array, Object initial, RubyBasicObject symbol, NotProvided block) {
return injectSymbolHelper(frame, ArrayMirror.reflect((double[]) ArrayNodes.getStore(array)), array, initial, symbol, 0);
}
@@ -2199,7 +2199,7 @@ public Object injectSymbolDoubleArray(VirtualFrame frame, RubyArray array, RubyB
return injectSymbolHelper(frame, mirror, array, mirror.get(0), symbol, 1);
}

@Specialization(guards = { "isRubySymbol(symbol)", "isObjectArray(array)", "!isEmptyArray(array)" })
@Specialization(guards = { "isRubySymbol(symbol)", "isObjectArray(array)", "!isEmptyArray(array)", "wasProvided(initial)" })
public Object injectSymbolObjectArray(VirtualFrame frame, RubyArray array, Object initial, RubyBasicObject symbol, NotProvided block) {
return injectSymbolHelper(frame, ArrayMirror.reflect((Object[]) ArrayNodes.getStore(array)), array, initial, symbol, 0);
}
Original file line number Diff line number Diff line change
@@ -54,8 +54,9 @@ public double writeDouble(Frame frame, double value) {
return value;
}

@Specialization(guards = { "isObjectKind(frame)", "wasProvided(value)" })
@Specialization(guards = "isObjectKind(frame)")
public Object writeObject(Frame frame, Object value) {
assert RubyGuards.wasProvided(value); // Useful debug aid to catch a running-away NotProvided
frame.setObject(frameSlot, value);
return value;
}