public static IRubyObject validateStringEncoding(ThreadContext context, Descriptors.FieldDescriptor.Type type, IRubyObject value) { if (!(value instanceof RubyString)) throw context.runtime.newTypeError("Invalid argument for string field."); switch(type) { case BYTES: value = ((RubyString)value).encode(context, context.runtime.evalScriptlet("Encoding::ASCII_8BIT")); break; case STRING: value = ((RubyString)value).encode(context, context.runtime.evalScriptlet("Encoding::UTF_8")); break; default: break; } value.setFrozen(true); return value; }
newhash.setFrozen(true);
newhash.setFrozen(true);
rs = RubyString.newUsAsciiStringShared(runtime, rsptrBytes, rsptr, rslen); rs = EncodingUtils.rbStrEncode(context, rs, runtime.getEncodingService().convertEncodingToRubyEncoding(enc), 0, context.nil); rs.setFrozen(true); rsStr = (RubyString) rs; rsByteList = rsStr.getByteList();
rs = RubyString.newUsAsciiStringShared(runtime, rsptrBytes, rsptr, rslen); rs = EncodingUtils.rbStrEncode(context, rs, runtime.getEncodingService().convertEncodingToRubyEncoding(enc), 0, context.nil); rs.setFrozen(true); rsStr = (RubyString) rs; rsByteList = rsStr.getByteList();