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