29
29
import org .truffleruby .core .cast .ToEncodingNode ;
30
30
import org .truffleruby .core .cast .ToRubyEncodingNode ;
31
31
import org .truffleruby .core .encoding .EncodingNodesFactory .CheckRopeEncodingNodeGen ;
32
- import org .truffleruby .core .encoding .EncodingNodesFactory .GetRubyEncodingNodeGen ;
33
32
import org .truffleruby .core .encoding .EncodingNodesFactory .NegotiateCompatibleEncodingNodeGen ;
34
33
import org .truffleruby .core .encoding .EncodingNodesFactory .NegotiateCompatibleRopeEncodingNodeGen ;
35
34
import org .truffleruby .core .klass .RubyClass ;
@@ -69,40 +68,6 @@ protected boolean isAsciiCompatible(RubyEncoding encoding) {
69
68
}
70
69
}
71
70
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
-
106
71
public abstract static class NegotiateCompatibleRopeEncodingNode extends RubyContextNode {
107
72
108
73
public abstract RubyEncoding executeNegotiate (Rope first , RubyEncoding firstEncoding , Rope second ,
@@ -472,7 +437,7 @@ protected Object eachAlias(RubyProc block) {
472
437
yieldNode .yield (
473
438
block ,
474
439
aliasName ,
475
- getContext (). getEncodingManager (). getRubyEncoding ( entry .value .getEncoding ()));
440
+ Encodings . getBuiltInEncoding ( entry .value .getEncoding (). getIndex ()));
476
441
}
477
442
return nil ;
478
443
}
@@ -629,8 +594,6 @@ protected int encodingFindIndex(Object nameObject,
629
594
@ Primitive (name = "encoding_get_object_encoding" )
630
595
public abstract static class EncodingGetObjectEncodingNode extends PrimitiveArrayArgumentsNode {
631
596
632
- @ Child private GetRubyEncodingNode getRubyEncodingNode = EncodingNodesFactory .GetRubyEncodingNodeGen .create ();
633
-
634
597
@ Specialization
635
598
protected RubyEncoding encodingGetObjectEncodingString (RubyString object ) {
636
599
return object .encoding ;
@@ -657,7 +620,7 @@ protected Object encodingGetObjectEncodingRegexp(RubyRegexp object,
657
620
final Rope regexpSource = object .source ;
658
621
659
622
if (hasRegexpSource .profile (regexpSource != null )) {
660
- return getRubyEncodingNode . executeGetRubyEncoding ( regexpSource . getEncoding ()) ;
623
+ return object . encoding ;
661
624
} else {
662
625
return Encodings .BINARY ;
663
626
}
0 commit comments