3709 if (at(p + 1, n, ':'))
3710 break; // "::"
3711 p++;
3712 q = scan(p, n, L_HEX, H_HEX);
3713 if (q <= p)
3714 failExpecting("digits for an IPv6 address", p);
3715 if (at(q, n, '.')) { // Beginning of IPv4 address
3716 p--;
3717 break;
3718 }
3719 if (q > p + 4)
3720 fail("IPv6 hexadecimal digit sequence too long", p);
3721 ipv6byteCount += 2;
3722 p = q;
3723 }
3724
3725 return p;
3726 }
3727
3728 }
3729 static {
3730 SharedSecrets.setJavaNetUriAccess(
3731 new JavaNetUriAccess() {
3732 public URI create(String scheme, String path) {
3733 return new URI(scheme, path);
3734 }
3735 }
3736 );
3737 }
3738 }
|
3709 if (at(p + 1, n, ':'))
3710 break; // "::"
3711 p++;
3712 q = scan(p, n, L_HEX, H_HEX);
3713 if (q <= p)
3714 failExpecting("digits for an IPv6 address", p);
3715 if (at(q, n, '.')) { // Beginning of IPv4 address
3716 p--;
3717 break;
3718 }
3719 if (q > p + 4)
3720 fail("IPv6 hexadecimal digit sequence too long", p);
3721 ipv6byteCount += 2;
3722 p = q;
3723 }
3724
3725 return p;
3726 }
3727
3728 }
3729
3730 static {
3731 runtimeSetup();
3732 }
3733
3734 // Called from JVM when loading an AOT cache
3735 private static void runtimeSetup() {
3736 SharedSecrets.setJavaNetUriAccess(
3737 new JavaNetUriAccess() {
3738 public URI create(String scheme, String path) {
3739 return new URI(scheme, path);
3740 }
3741 }
3742 );
3743 }
3744 }
|