Skip to content

Commit 60245f5

Browse files
committed
Remove usages of GetRubyEncodingNode and EncodingManager#getRubyEncoding
1 parent 2200231 commit 60245f5

File tree

5 files changed

+11
-59
lines changed

5 files changed

+11
-59
lines changed

src/main/java/org/truffleruby/core/cast/ToRubyEncodingNode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ protected RubyEncoding symbolToEncoding(RubySymbol value) {
4545

4646
@Specialization
4747
protected RubyEncoding regexpToEncoding(RubyRegexp value) {
48-
return getContext().getEncodingManager().getRubyEncoding(value.regex.getEncoding());
48+
return value.encoding;
4949
}
5050

5151
@Specialization

src/main/java/org/truffleruby/core/encoding/EncodingManager.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,10 +230,6 @@ public RubyEncoding getRubyEncoding(int encodingIndex) {
230230
return ENCODING_LIST_BY_ENCODING_INDEX[encodingIndex];
231231
}
232232

233-
public RubyEncoding getRubyEncoding(Encoding encoding) {
234-
return ENCODING_LIST_BY_ENCODING_INDEX[encoding.getIndex()];
235-
}
236-
237233
@TruffleBoundary
238234
public synchronized RubyEncoding defineBuiltInEncoding(EncodingDB.Entry encodingEntry) {
239235
final int encodingIndex = encodingEntry.getEncoding().getIndex();
@@ -263,7 +259,7 @@ public synchronized RubyEncoding defineDynamicEncoding(Encoding encoding, byte[]
263259

264260
@TruffleBoundary
265261
public RubyEncoding defineAlias(Encoding encoding, String name) {
266-
final RubyEncoding rubyEncoding = getRubyEncoding(encoding);
262+
final RubyEncoding rubyEncoding = Encodings.getBuiltInEncoding(encoding.getIndex());
267263
addToLookup(name, rubyEncoding);
268264
return rubyEncoding;
269265
}

src/main/java/org/truffleruby/core/encoding/EncodingNodes.java

Lines changed: 2 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import org.truffleruby.core.cast.ToEncodingNode;
3030
import org.truffleruby.core.cast.ToRubyEncodingNode;
3131
import org.truffleruby.core.encoding.EncodingNodesFactory.CheckRopeEncodingNodeGen;
32-
import org.truffleruby.core.encoding.EncodingNodesFactory.GetRubyEncodingNodeGen;
3332
import org.truffleruby.core.encoding.EncodingNodesFactory.NegotiateCompatibleEncodingNodeGen;
3433
import org.truffleruby.core.encoding.EncodingNodesFactory.NegotiateCompatibleRopeEncodingNodeGen;
3534
import org.truffleruby.core.klass.RubyClass;
@@ -69,40 +68,6 @@ protected boolean isAsciiCompatible(RubyEncoding encoding) {
6968
}
7069
}
7170

72-
public abstract static class GetRubyEncodingNode extends RubyContextNode {
73-
74-
public static GetRubyEncodingNode create() {
75-
return GetRubyEncodingNodeGen.create();
76-
}
77-
78-
/** This returns only the built-in RubyEncoding for the given Encoding. It will not return dummy/replicate
79-
* encodings that might be associated to an Encoding so this should rarely be used.
80-
*
81-
* @param encoding
82-
* @return a built-in RubyEncoding */
83-
public abstract RubyEncoding executeGetRubyEncoding(Encoding encoding);
84-
85-
@Specialization(guards = "isSameEncoding(encoding, cachedRubyEncoding)", limit = "getCacheLimit()")
86-
protected RubyEncoding getRubyEncodingCached(Encoding encoding,
87-
@Cached("getRubyEncodingUncached(encoding)") RubyEncoding cachedRubyEncoding) {
88-
return cachedRubyEncoding;
89-
}
90-
91-
@Specialization(replaces = "getRubyEncodingCached")
92-
protected RubyEncoding getRubyEncodingUncached(Encoding encoding) {
93-
return Encodings.getBuiltInEncoding(encoding.getIndex());
94-
}
95-
96-
protected boolean isSameEncoding(Encoding encoding, RubyEncoding rubyEncoding) {
97-
return encoding == rubyEncoding.jcoding;
98-
}
99-
100-
protected int getCacheLimit() {
101-
return getLanguage().options.ENCODING_LOADED_CLASSES_CACHE;
102-
}
103-
104-
}
105-
10671
public abstract static class NegotiateCompatibleRopeEncodingNode extends RubyContextNode {
10772

10873
public abstract RubyEncoding executeNegotiate(Rope first, RubyEncoding firstEncoding, Rope second,
@@ -472,7 +437,7 @@ protected Object eachAlias(RubyProc block) {
472437
yieldNode.yield(
473438
block,
474439
aliasName,
475-
getContext().getEncodingManager().getRubyEncoding(entry.value.getEncoding()));
440+
Encodings.getBuiltInEncoding(entry.value.getEncoding().getIndex()));
476441
}
477442
return nil;
478443
}
@@ -629,8 +594,6 @@ protected int encodingFindIndex(Object nameObject,
629594
@Primitive(name = "encoding_get_object_encoding")
630595
public abstract static class EncodingGetObjectEncodingNode extends PrimitiveArrayArgumentsNode {
631596

632-
@Child private GetRubyEncodingNode getRubyEncodingNode = EncodingNodesFactory.GetRubyEncodingNodeGen.create();
633-
634597
@Specialization
635598
protected RubyEncoding encodingGetObjectEncodingString(RubyString object) {
636599
return object.encoding;
@@ -657,7 +620,7 @@ protected Object encodingGetObjectEncodingRegexp(RubyRegexp object,
657620
final Rope regexpSource = object.source;
658621

659622
if (hasRegexpSource.profile(regexpSource != null)) {
660-
return getRubyEncodingNode.executeGetRubyEncoding(regexpSource.getEncoding());
623+
return object.encoding;
661624
} else {
662625
return Encodings.BINARY;
663626
}

src/main/java/org/truffleruby/core/regexp/RegexpNodes.java

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import org.truffleruby.builtins.PrimitiveArrayArgumentsNode;
2727
import org.truffleruby.core.array.RubyArray;
2828
import org.truffleruby.core.cast.ToStrNode;
29-
import org.truffleruby.core.encoding.EncodingNodes;
3029
import org.truffleruby.core.encoding.Encodings;
3130
import org.truffleruby.core.encoding.RubyEncoding;
3231
import org.truffleruby.core.klass.RubyClass;
@@ -156,10 +155,8 @@ public abstract static class SourceNode extends CoreMethodArrayArgumentsNode {
156155

157156
@Specialization
158157
protected RubyString source(RubyRegexp regexp,
159-
@Cached StringNodes.MakeStringNode makeStringNode,
160-
@Cached EncodingNodes.GetRubyEncodingNode getRubyEncodingNode) {
161-
final RubyEncoding rubyEncoding = getRubyEncodingNode.executeGetRubyEncoding(regexp.source.encoding);
162-
return makeStringNode.fromRope(regexp.source, rubyEncoding);
158+
@Cached StringNodes.MakeStringNode makeStringNode) {
159+
return makeStringNode.fromRope(regexp.source, regexp.encoding);
163160
}
164161

165162
}
@@ -179,18 +176,14 @@ public static ToSNode create() {
179176
@Specialization(guards = "isSameRegexp(regexp, cachedRegexp)")
180177
protected RubyString toSCached(RubyRegexp regexp,
181178
@Cached("regexp") RubyRegexp cachedRegexp,
182-
@Cached("createRope(cachedRegexp)") Rope rope,
183-
@Cached EncodingNodes.GetRubyEncodingNode getRubyEncodingNode) {
184-
final RubyEncoding rubyEncoding = getRubyEncodingNode.executeGetRubyEncoding(rope.encoding);
185-
return makeStringNode.fromRope(rope, rubyEncoding);
179+
@Cached("createRope(cachedRegexp)") Rope rope) {
180+
return makeStringNode.fromRope(rope, Encodings.getBuiltInEncoding(rope.getEncoding().getIndex()));
186181
}
187182

188183
@Specialization
189-
protected RubyString toS(RubyRegexp regexp,
190-
@Cached EncodingNodes.GetRubyEncodingNode getRubyEncodingNode) {
184+
protected RubyString toS(RubyRegexp regexp) {
191185
final Rope rope = createRope(regexp);
192-
final RubyEncoding rubyEncoding = getRubyEncodingNode.executeGetRubyEncoding(rope.encoding);
193-
return makeStringNode.fromRope(rope, rubyEncoding);
186+
return makeStringNode.fromRope(rope, Encodings.getBuiltInEncoding(rope.getEncoding().getIndex()));
194187
}
195188

196189
@TruffleBoundary

src/main/java/org/truffleruby/core/regexp/RubyRegexp.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public RubyRegexp(
4343
RegexpOptions options,
4444
EncodingCache encodingCache,
4545
TRegexCache tregexCache) {
46-
assert source.encoding == encoding.jcoding;
46+
assert (source == null && encoding == null) || source.encoding == encoding.jcoding;
4747
this.regex = regex;
4848
this.source = source;
4949
this.encoding = encoding;

0 commit comments

Comments
 (0)