1 /* 2 * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 * 23 */ 24 25 // This file contains multiple illegal value type classes that should cause 26 // ClassFormatError exceptions when attempted to be loaded. 27 // 28 // The .jcod classes were originally generated from this Java file and then 29 // modified to cause ClassFormatError or ClassCircularityError exceptions. The 30 // '(bad)' comments in most of the tests show where the modifications were made. 31 // 32 // final value class Value { 33 // static final Value VT = makeValue(0x01234567); 34 // final int int_v; 35 // Value() { 36 // int_v = 1; 37 // } 38 // static Value makeValue(int x) { 39 // Value v = Value.default; 40 // v = __WithField(v.int_v, x); 41 // return v; 42 // } 43 // } 44 45 46 // Test that class modifiers cannot have both ACC_VALUE and ACC_ABSTRACT set. 47 // 48 class ValueAbstract { 49 0xCAFEBABE; 50 0; // minor version 51 57; // version 52 [28] { // Constant Pool 53 ; // first element is empty 54 Method #7 #23; // #1 at 0x0A 55 Field #3 #24; // #2 at 0x0F 56 class #9; // #3 at 0x14 57 int 0x01234567; // #4 at 0x17 58 Method #3 #25; // #5 at 0x1C 59 Field #3 #26; // #6 at 0x21 60 class #27; // #7 at 0x26 61 Utf8 "VT"; // #8 at 0x29 62 Utf8 "ValueAbstract"; // #9 at 0x2E 63 Utf8 "ValueTypes"; // #10 at 0x36 64 Utf8 "LValueAbstract;"; // #11 at 0x43 65 Utf8 "int_v"; // #12 at 0x4D 66 Utf8 "I"; // #13 at 0x55 67 Utf8 "<init>"; // #14 at 0x59 68 Utf8 "()V"; // #15 at 0x62 69 Utf8 "Code"; // #16 at 0x68 70 Utf8 "LineNumberTable"; // #17 at 0x6F 71 Utf8 "makeValueAbstract"; // #18 at 0x81 72 Utf8 "(I)LValueAbstract;"; // #19 at 0x8D 73 Utf8 "<clinit>"; // #20 at 0x9A 74 Utf8 "SourceFile"; // #21 at 0xA5 75 Utf8 "ValueAbstract.java"; // #22 at 0xB2 76 NameAndType #14 #15; // #23 at 0xBF 77 NameAndType #12 #13; // #24 at 0xC4 78 NameAndType #18 #19; // #25 at 0xC9 79 NameAndType #8 #11; // #26 at 0xCE 80 Utf8 "java/lang/Object"; // #27 at 0xD3 81 } // Constant Pool 82 83 0x0530; // access [ ACC_VALUE ACC_ABSTRACT(bad) ACC_SUPER ACC_FINAL ] 84 #3;// this_cpx 85 #7;// super_cpx 86 87 [0] { // Interfaces 88 } // Interfaces 89 90 [2] { // fields 91 { // Member at 0xF0 92 0x0118; // access 93 #8; // name_cpx 94 #11; // sig_cpx 95 [0] { // Attributes 96 } // Attributes 97 } // Member 98 ; 99 { // Member at 0xF8 100 0x0010; // access 101 #12; // name_cpx 102 #13; // sig_cpx 103 [0] { // Attributes 104 } // Attributes 105 } // Member 106 } // fields 107 108 [3] { // methods 109 { // Member at 0x0102 110 0x0000; // access 111 #14; // name_cpx 112 #15; // sig_cpx 113 [1] { // Attributes 114 Attr(#16, 42) { // Code at 0x010A 115 2; // max_stack 116 1; // max_locals 117 Bytes[10]{ 118 0x2AB700012A04B500; 119 0x02B1; 120 }; 121 [0] { // Traps 122 } // end Traps 123 [1] { // Attributes 124 Attr(#17, 14) { // LineNumberTable at 0x0126 125 [3] { // LineNumberTable 126 0 4; // at 0x0132 127 4 5; // at 0x0136 128 9 6; // at 0x013A 129 } 130 } // end LineNumberTable 131 } // Attributes 132 } // end Code 133 } // Attributes 134 } // Member 135 ; 136 { // Member at 0x013A 137 0x0008; // access 138 #18; // name_cpx 139 #19; // sig_cpx 140 [1] { // Attributes 141 Attr(#16, 44) { // Code at 0x0142 142 2; // max_stack 143 2; // max_locals 144 Bytes[12]{ 145 0xCB00034C2B1ACC00; 146 0x024C2BB0; 147 }; 148 [0] { // Traps 149 } // end Traps 150 [1] { // Attributes 151 Attr(#17, 14) { // LineNumberTable at 0x0160 152 [3] { // LineNumberTable 153 0 8; // at 0x016C 154 4 9; // at 0x0170 155 10 10; // at 0x0174 156 } 157 } // end LineNumberTable 158 } // Attributes 159 } // end Code 160 } // Attributes 161 } // Member 162 ; 163 { // Member at 0x0174 164 0x0008; // access 165 #20; // name_cpx 166 #15; // sig_cpx 167 [1] { // Attributes 168 Attr(#16, 33) { // Code at 0x017C 169 1; // max_stack 170 0; // max_locals 171 Bytes[9]{ 172 0x1204B80005B30006; 173 0xB1; 174 }; 175 [0] { // Traps 176 } // end Traps 177 [1] { // Attributes 178 Attr(#17, 6) { // LineNumberTable at 0x0197 179 [1] { // LineNumberTable 180 0 2; // at 0x01A3 181 } 182 } // end LineNumberTable 183 } // Attributes 184 } // end Code 185 } // Attributes 186 } // Member 187 } // methods 188 189 [2] { // Attributes 190 Attr(#21, 2) { // SourceFile at 0x01A5 191 #22; 192 } // end SourceFile 193 ; 194 Attr(#10, 4) { // ValueTypes at 0x01AD 195 0x00010003; 196 } // end ValueTypes 197 } // Attributes 198 } // end class ValueAbstract 199 200 ////////////////////////////////////////////////////////////////////// 201 202 // Test that class modifiers cannot have both ACC_VALUE and ACC_ENUM set. 203 // 204 class ValueEnum { 205 0xCAFEBABE; 206 0; // minor version 207 57; // version 208 [28] { // Constant Pool 209 ; // first element is empty 210 Method #7 #23; // #1 at 0x0A 211 Field #3 #24; // #2 at 0x0F 212 class #9; // #3 at 0x14 213 int 0x01234567; // #4 at 0x17 214 Method #3 #25; // #5 at 0x1C 215 Field #3 #26; // #6 at 0x21 216 class #27; // #7 at 0x26 217 Utf8 "VT"; // #8 at 0x29 218 Utf8 "ValueEnum"; // #9 at 0x2E 219 Utf8 "ValueTypes"; // #10 at 0x36 220 Utf8 "LValueEnum;"; // #11 at 0x43 221 Utf8 "int_v"; // #12 at 0x4D 222 Utf8 "I"; // #13 at 0x55 223 Utf8 "<init>"; // #14 at 0x59 224 Utf8 "()V"; // #15 at 0x62 225 Utf8 "Code"; // #16 at 0x68 226 Utf8 "LineNumberTable"; // #17 at 0x6F 227 Utf8 "makeValueEnum"; // #18 at 0x81 228 Utf8 "(I)LValueEnum;"; // #19 at 0x8D 229 Utf8 "<clinit>"; // #20 at 0x9A 230 Utf8 "SourceFile"; // #21 at 0xA5 231 Utf8 "ValueEnum.java"; // #22 at 0xB2 232 NameAndType #14 #15; // #23 at 0xBF 233 NameAndType #12 #13; // #24 at 0xC4 234 NameAndType #18 #19; // #25 at 0xC9 235 NameAndType #8 #11; // #26 at 0xCE 236 Utf8 "java/lang/Object"; // #27 at 0xD3 237 } // Constant Pool 238 239 0x04130; // access [ ACC_VALUE ACC_ENUM(bad) ACC_SUPER ACC_FINAL ] 240 #3;// this_cpx 241 #7;// super_cpx 242 243 [0] { // Interfaces 244 } // Interfaces 245 246 [2] { // fields 247 { // Member at 0xF0 248 0x0118; // access 249 #8; // name_cpx 250 #11; // sig_cpx 251 [0] { // Attributes 252 } // Attributes 253 } // Member 254 ; 255 { // Member at 0xF8 256 0x0010; // access 257 #12; // name_cpx 258 #13; // sig_cpx 259 [0] { // Attributes 260 } // Attributes 261 } // Member 262 } // fields 263 264 [3] { // methods 265 { // Member at 0x0102 266 0x0000; // access 267 #14; // name_cpx 268 #15; // sig_cpx 269 [1] { // Attributes 270 Attr(#16, 42) { // Code at 0x010A 271 2; // max_stack 272 1; // max_locals 273 Bytes[10]{ 274 0x2AB700012A04B500; 275 0x02B1; 276 }; 277 [0] { // Traps 278 } // end Traps 279 [1] { // Attributes 280 Attr(#17, 14) { // LineNumberTable at 0x0126 281 [3] { // LineNumberTable 282 0 4; // at 0x0132 283 4 5; // at 0x0136 284 9 6; // at 0x013A 285 } 286 } // end LineNumberTable 287 } // Attributes 288 } // end Code 289 } // Attributes 290 } // Member 291 ; 292 { // Member at 0x013A 293 0x0008; // access 294 #18; // name_cpx 295 #19; // sig_cpx 296 [1] { // Attributes 297 Attr(#16, 44) { // Code at 0x0142 298 2; // max_stack 299 2; // max_locals 300 Bytes[12]{ 301 0xCB00034C2B1ACC00; 302 0x024C2BB0; 303 }; 304 [0] { // Traps 305 } // end Traps 306 [1] { // Attributes 307 Attr(#17, 14) { // LineNumberTable at 0x0160 308 [3] { // LineNumberTable 309 0 8; // at 0x016C 310 4 9; // at 0x0170 311 10 10; // at 0x0174 312 } 313 } // end LineNumberTable 314 } // Attributes 315 } // end Code 316 } // Attributes 317 } // Member 318 ; 319 { // Member at 0x0174 320 0x0008; // access 321 #20; // name_cpx 322 #15; // sig_cpx 323 [1] { // Attributes 324 Attr(#16, 33) { // Code at 0x017C 325 1; // max_stack 326 0; // max_locals 327 Bytes[9]{ 328 0x1204B80005B30006; 329 0xB1; 330 }; 331 [0] { // Traps 332 } // end Traps 333 [1] { // Attributes 334 Attr(#17, 6) { // LineNumberTable at 0x0197 335 [1] { // LineNumberTable 336 0 2; // at 0x01A3 337 } 338 } // end LineNumberTable 339 } // Attributes 340 } // end Code 341 } // Attributes 342 } // Member 343 } // methods 344 345 [2] { // Attributes 346 Attr(#21, 2) { // SourceFile at 0x01A5 347 #22; 348 } // end SourceFile 349 ; 350 Attr(#10, 4) { // ValueTypes at 0x01AD 351 0x00010003; 352 } // end ValueTypes 353 } // Attributes 354 } // end class ValueEnum 355 356 ////////////////////////////////////////////////////////////////////// 357 358 // Test that value type fields must be final. 359 // 360 class ValueFieldNotFinal { 361 0xCAFEBABE; 362 0; // minor version 363 57; // version 364 [28] { // Constant Pool 365 ; // first element is empty 366 Method #7 #23; // #1 at 0x0A 367 Field #3 #24; // #2 at 0x0F 368 class #9; // #3 at 0x14 369 int 0x01234567; // #4 at 0x17 370 Method #3 #25; // #5 at 0x1C 371 Field #3 #26; // #6 at 0x21 372 class #27; // #7 at 0x26 373 Utf8 "VT"; // #8 at 0x29 374 Utf8 "ValueFieldNotFinal"; // #9 at 0x2E 375 Utf8 "ValueTypes"; // #10 at 0x36 376 Utf8 "LValueFieldNotFinal;"; // #11 at 0x43 377 Utf8 "int_v"; // #12 at 0x4D 378 Utf8 "I"; // #13 at 0x55 379 Utf8 "<init>"; // #14 at 0x59 380 Utf8 "()V"; // #15 at 0x62 381 Utf8 "Code"; // #16 at 0x68 382 Utf8 "LineNumberTable"; // #17 at 0x6F 383 Utf8 "makeValueFieldNotFinal"; // #18 at 0x81 384 Utf8 "(I)LValueFieldNotFinal;"; // #19 at 0x8D 385 Utf8 "<clinit>"; // #20 at 0x9A 386 Utf8 "SourceFile"; // #21 at 0xA5 387 Utf8 "ValueFieldNotFinal.java"; // #22 at 0xB2 388 NameAndType #14 #15; // #23 at 0xBF 389 NameAndType #12 #13; // #24 at 0xC4 390 NameAndType #18 #19; // #25 at 0xC9 391 NameAndType #8 #11; // #26 at 0xCE 392 Utf8 "java/lang/Object"; // #27 at 0xD3 393 } // Constant Pool 394 395 0x0130; // access [ ACC_VALUE ACC_SUPER ACC_FINAL ] 396 #3;// this_cpx 397 #7;// super_cpx 398 399 [0] { // Interfaces 400 } // Interfaces 401 402 [2] { // fields 403 { // Member at 0xF0 404 0x0118; // access 405 #8; // name_cpx 406 #11; // sig_cpx 407 [0] { // Attributes 408 } // Attributes 409 } // Member 410 ; 411 { // Member at 0xF8 412 0x0000; // access [ Field not ACC_FINAL(bad) ] 413 #12; // name_cpx 414 #13; // sig_cpx 415 [0] { // Attributes 416 } // Attributes 417 } // Member 418 } // fields 419 420 [3] { // methods 421 { // Member at 0x0102 422 0x0000; // access 423 #14; // name_cpx 424 #15; // sig_cpx 425 [1] { // Attributes 426 Attr(#16, 42) { // Code at 0x010A 427 2; // max_stack 428 1; // max_locals 429 Bytes[10]{ 430 0x2AB700012A04B500; 431 0x02B1; 432 }; 433 [0] { // Traps 434 } // end Traps 435 [1] { // Attributes 436 Attr(#17, 14) { // LineNumberTable at 0x0126 437 [3] { // LineNumberTable 438 0 4; // at 0x0132 439 4 5; // at 0x0136 440 9 6; // at 0x013A 441 } 442 } // end LineNumberTable 443 } // Attributes 444 } // end Code 445 } // Attributes 446 } // Member 447 ; 448 { // Member at 0x013A 449 0x0008; // access 450 #18; // name_cpx 451 #19; // sig_cpx 452 [1] { // Attributes 453 Attr(#16, 44) { // Code at 0x0142 454 2; // max_stack 455 2; // max_locals 456 Bytes[12]{ 457 0xCB00034C2B1ACC00; 458 0x024C2BB0; 459 }; 460 [0] { // Traps 461 } // end Traps 462 [1] { // Attributes 463 Attr(#17, 14) { // LineNumberTable at 0x0160 464 [3] { // LineNumberTable 465 0 8; // at 0x016C 466 4 9; // at 0x0170 467 10 10; // at 0x0174 468 } 469 } // end LineNumberTable 470 } // Attributes 471 } // end Code 472 } // Attributes 473 } // Member 474 ; 475 { // Member at 0x0174 476 0x0008; // access 477 #20; // name_cpx 478 #15; // sig_cpx 479 [1] { // Attributes 480 Attr(#16, 33) { // Code at 0x017C 481 1; // max_stack 482 0; // max_locals 483 Bytes[9]{ 484 0x1204B80005B30006; 485 0xB1; 486 }; 487 [0] { // Traps 488 } // end Traps 489 [1] { // Attributes 490 Attr(#17, 6) { // LineNumberTable at 0x0197 491 [1] { // LineNumberTable 492 0 2; // at 0x01A3 493 } 494 } // end LineNumberTable 495 } // Attributes 496 } // end Code 497 } // Attributes 498 } // Member 499 } // methods 500 501 [2] { // Attributes 502 Attr(#21, 2) { // SourceFile at 0x01A5 503 #22; 504 } // end SourceFile 505 ; 506 Attr(#10, 4) { // ValueTypes at 0x01AD 507 0x00010003; 508 } // end ValueTypes 509 } // Attributes 510 } // end class ValueFieldNotFinal 511 512 ////////////////////////////////////////////////////////////////////// 513 514 // Test that arrays cannot have ACC_FLATTENABLE set. 515 // 516 class ValueFlatArray { 517 0xCAFEBABE; 518 0; // minor version 519 57; // version 520 [32] { // Constant Pool 521 ; // first element is empty 522 Method #8 #26; // #1 at 0x0A 523 Field #4 #27; // #2 at 0x0F 524 Field #4 #28; // #3 at 0x14 525 class #10; // #4 at 0x19 526 int 0x01234567; // #5 at 0x1C 527 Method #4 #29; // #6 at 0x21 528 Field #4 #30; // #7 at 0x26 529 class #31; // #8 at 0x2B 530 Utf8 "VT"; // #9 at 0x2E 531 Utf8 "ValueFlatArray"; // #10 at 0x33 532 Utf8 "ValueTypes"; // #11 at 0x40 533 Utf8 "LValueFlatArray;"; // #12 at 0x4D 534 Utf8 "int_v"; // #13 at 0x5C 535 Utf8 "I"; // #14 at 0x64 536 Utf8 "int_a"; // #15 at 0x68 537 Utf8 "[I"; // #16 at 0x70 538 Utf8 "<init>"; // #17 at 0x75 539 Utf8 "()V"; // #18 at 0x7E 540 Utf8 "Code"; // #19 at 0x84 541 Utf8 "LineNumberTable"; // #20 at 0x8B 542 Utf8 "makeValueFlatArray"; // #21 at 0x9D 543 Utf8 "(I)LValueFlatArray;"; // #22 at 0xAE 544 Utf8 "<clinit>"; // #23 at 0xC0 545 Utf8 "SourceFile"; // #24 at 0xCB 546 Utf8 "ValueFlatArray.java"; // #25 at 0xD8 547 NameAndType #17 #18; // #26 at 0xEA 548 NameAndType #13 #14; // #27 at 0xEF 549 NameAndType #15 #16; // #28 at 0xF4 550 NameAndType #21 #22; // #29 at 0xF9 551 NameAndType #9 #12; // #30 at 0xFE 552 Utf8 "java/lang/Object"; // #31 at 0x0103 553 } // Constant Pool 554 555 0x0130; // access [ ACC_VALUE ACC_SUPER ACC_FINAL ] 556 #4;// this_cpx 557 #8;// super_cpx 558 559 [0] { // Interfaces 560 } // Interfaces 561 562 [3] { // fields 563 { // Member at 0x0120 564 0x0118; // access 565 #9; // name_cpx 566 #12; // sig_cpx 567 [0] { // Attributes 568 } // Attributes 569 } // Member 570 ; 571 { // Member at 0x0128 572 0x0010; // access 573 #13; // name_cpx 574 #14; // sig_cpx 575 [0] { // Attributes 576 } // Attributes 577 } // Member 578 ; 579 { // Member at 0x0130 580 0x0110; // access // access [ ACC_FINAL ACC_FLATTENABLE(bad) ] 581 #15; // name_cpx 582 #16; // sig_cpx 583 [0] { // Attributes 584 } // Attributes 585 } // Member 586 } // fields 587 588 [3] { // methods 589 { // Member at 0x013A 590 0x0000; // access 591 #17; // name_cpx 592 #18; // sig_cpx 593 [1] { // Attributes 594 Attr(#19, 51) { // Code at 0x0142 595 2; // max_stack 596 1; // max_locals 597 Bytes[15]{ 598 0x2AB700012A04B500; 599 0x022A01B50003B1; 600 }; 601 [0] { // Traps 602 } // end Traps 603 [1] { // Attributes 604 Attr(#20, 18) { // LineNumberTable at 0x0163 605 [4] { // LineNumberTable 606 0 5; // at 0x016F 607 4 6; // at 0x0173 608 9 7; // at 0x0177 609 14 8; // at 0x017B 610 } 611 } // end LineNumberTable 612 } // Attributes 613 } // end Code 614 } // Attributes 615 } // Member 616 ; 617 { // Member at 0x017B 618 0x0008; // access 619 #21; // name_cpx 620 #22; // sig_cpx 621 [1] { // Attributes 622 Attr(#19, 44) { // Code at 0x0183 623 2; // max_stack 624 2; // max_locals 625 Bytes[12]{ 626 0xCB00044C2B1ACC00; 627 0x024C2BB0; 628 }; 629 [0] { // Traps 630 } // end Traps 631 [1] { // Attributes 632 Attr(#20, 14) { // LineNumberTable at 0x01A1 633 [3] { // LineNumberTable 634 0 10; // at 0x01AD 635 4 11; // at 0x01B1 636 10 12; // at 0x01B5 637 } 638 } // end LineNumberTable 639 } // Attributes 640 } // end Code 641 } // Attributes 642 } // Member 643 ; 644 { // Member at 0x01B5 645 0x0008; // access 646 #23; // name_cpx 647 #18; // sig_cpx 648 [1] { // Attributes 649 Attr(#19, 33) { // Code at 0x01BD 650 1; // max_stack 651 0; // max_locals 652 Bytes[9]{ 653 0x1205B80006B30007; 654 0xB1; 655 }; 656 [0] { // Traps 657 } // end Traps 658 [1] { // Attributes 659 Attr(#20, 6) { // LineNumberTable at 0x01D8 660 [1] { // LineNumberTable 661 0 2; // at 0x01E4 662 } 663 } // end LineNumberTable 664 } // Attributes 665 } // end Code 666 } // Attributes 667 } // Member 668 } // methods 669 670 [2] { // Attributes 671 Attr(#24, 2) { // SourceFile at 0x01E6 672 #25; 673 } // end SourceFile 674 ; 675 Attr(#11, 4) { // ValueTypes at 0x01EE 676 0x00010004; 677 } // end ValueTypes 678 } // Attributes 679 } // end class ValueFlatArray 680 681 ////////////////////////////////////////////////////////////////////// 682 683 // Test that a value type cannot have a method named <init>. 684 // 685 class ValueInitMethod { 686 0xCAFEBABE; 687 0; // minor version 688 57; // version 689 [28] { // Constant Pool 690 ; // first element is empty 691 Method #7 #23; // #1 at 0x0A 692 Field #3 #24; // #2 at 0x0F 693 class #9; // #3 at 0x14 694 int 0x01234567; // #4 at 0x17 695 Method #3 #25; // #5 at 0x1C 696 Field #3 #26; // #6 at 0x21 697 class #27; // #7 at 0x26 698 Utf8 "VT"; // #8 at 0x29 699 Utf8 "ValueInitMethod"; // #9 at 0x2E 700 Utf8 "ValueTypes"; // #10 at 0x36 701 Utf8 "LValueInitMethod;"; // #11 at 0x43 702 Utf8 "int_v"; // #12 at 0x4D 703 Utf8 "I"; // #13 at 0x55 704 Utf8 "<init>"; // #14 at 0x59 705 Utf8 "()V"; // #15 at 0x62 706 Utf8 "Code"; // #16 at 0x68 707 Utf8 "LineNumberTable"; // #17 at 0x6F 708 Utf8 "makeValueInitMethod"; // #18 at 0x81 709 Utf8 "(I)LValueInitMethod;"; // #19 at 0x8D 710 Utf8 "<clinit>"; // #20 at 0x9A 711 Utf8 "SourceFile"; // #21 at 0xA5 712 Utf8 "ValueInitMethod.java"; // #22 at 0xB2 713 NameAndType #14 #15; // #23 at 0xBF 714 NameAndType #12 #13; // #24 at 0xC4 715 NameAndType #18 #19; // #25 at 0xC9 716 NameAndType #8 #11; // #26 at 0xCE 717 Utf8 "java/lang/Object"; // #27 at 0xD3 718 } // Constant Pool 719 720 0x0130; // access [ ACC_VALUE ACC_SUPER ACC_FINAL ] 721 #3;// this_cpx 722 #7;// super_cpx 723 724 [0] { // Interfaces 725 } // Interfaces 726 727 [2] { // fields 728 { // Member at 0xF0 729 0x0118; // access 730 #8; // name_cpx 731 #11; // sig_cpx 732 [0] { // Attributes 733 } // Attributes 734 } // Member 735 ; 736 { // Member at 0xF8 737 0x0010; // access 738 #12; // name_cpx 739 #13; // sig_cpx 740 [0] { // Attributes 741 } // Attributes 742 } // Member 743 } // fields 744 745 [3] { // methods 746 { // Member at 0x0102 747 0x0000; // access 748 #14; // name_cpx (bad) <init> 749 #15; // sig_cpx 750 [1] { // Attributes 751 Attr(#16, 42) { // Code at 0x010A 752 2; // max_stack 753 1; // max_locals 754 Bytes[10]{ 755 0x2AB700012A04B500; 756 0x02B1; 757 }; 758 [0] { // Traps 759 } // end Traps 760 [1] { // Attributes 761 Attr(#17, 14) { // LineNumberTable at 0x0126 762 [3] { // LineNumberTable 763 0 4; // at 0x0132 764 4 5; // at 0x0136 765 9 6; // at 0x013A 766 } 767 } // end LineNumberTable 768 } // Attributes 769 } // end Code 770 } // Attributes 771 } // Member 772 ; 773 { // Member at 0x013A 774 0x0008; // access 775 #18; // name_cpx 776 #19; // sig_cpx 777 [1] { // Attributes 778 Attr(#16, 44) { // Code at 0x0142 779 2; // max_stack 780 2; // max_locals 781 Bytes[12]{ 782 0xCB00034C2B1ACC00; 783 0x024C2BB0; 784 }; 785 [0] { // Traps 786 } // end Traps 787 [1] { // Attributes 788 Attr(#17, 14) { // LineNumberTable at 0x0160 789 [3] { // LineNumberTable 790 0 8; // at 0x016C 791 4 9; // at 0x0170 792 10 10; // at 0x0174 793 } 794 } // end LineNumberTable 795 } // Attributes 796 } // end Code 797 } // Attributes 798 } // Member 799 ; 800 { // Member at 0x0174 801 0x0008; // access 802 #20; // name_cpx 803 #15; // sig_cpx 804 [1] { // Attributes 805 Attr(#16, 33) { // Code at 0x017C 806 1; // max_stack 807 0; // max_locals 808 Bytes[9]{ 809 0x1204B80005B30006; 810 0xB1; 811 }; 812 [0] { // Traps 813 } // end Traps 814 [1] { // Attributes 815 Attr(#17, 6) { // LineNumberTable at 0x0197 816 [1] { // LineNumberTable 817 0 2; // at 0x01A3 818 } 819 } // end LineNumberTable 820 } // Attributes 821 } // end Code 822 } // Attributes 823 } // Member 824 } // methods 825 826 [2] { // Attributes 827 Attr(#21, 2) { // SourceFile at 0x01A5 828 #22; 829 } // end SourceFile 830 ; 831 Attr(#10, 4) { // ValueTypes at 0x01AD 832 0x00010003; 833 } // end ValueTypes 834 } // Attributes 835 } // end class ValueInitMethod 836 837 ////////////////////////////////////////////////////////////////////// 838 839 // Test that class modifiers cannot have both ACC_VALUE and ACC_INTERFACE set. 840 // 841 class ValueInterface { 842 0xCAFEBABE; 843 0; // minor version 844 57; // version 845 [27] { // Constant Pool 846 ; // first element is empty 847 Method #7 #21; // #1 at 0x0A 848 Field #3 #22; // #2 at 0x0F 849 class #23; // #3 at 0x14 850 int 0x01234567; // #4 at 0x17 851 Method #3 #24; // #5 at 0x1C 852 Field #3 #25; // #6 at 0x21 853 class #26; // #7 at 0x26 854 Utf8 "VT"; // #8 at 0x29 855 Utf8 "LValueInterface;"; // #9 at 0x2E 856 Utf8 "int_v"; // #10 at 0x3C 857 Utf8 "I"; // #11 at 0x44 858 Utf8 "<init>"; // #12 at 0x48 859 Utf8 "()V"; // #13 at 0x51 860 Utf8 "Code"; // #14 at 0x57 861 Utf8 "LineNumberTable"; // #15 at 0x5E 862 Utf8 "makeValueInterface"; // #16 at 0x70 863 Utf8 "(I)LValueInterface;"; // #17 at 0x80 864 Utf8 "<clinit>"; // #18 at 0x91 865 Utf8 "SourceFile"; // #19 at 0x9C 866 Utf8 "ValueInterface.java"; // #20 at 0xA9 867 NameAndType #12 #13; // #21 at 0xBA 868 NameAndType #10 #11; // #22 at 0xBF 869 Utf8 "ValueInterface"; // #23 at 0xC4 870 NameAndType #16 #17; // #24 at 0xD0 871 NameAndType #8 #9; // #25 at 0xD5 872 Utf8 "java/lang/Object"; // #26 at 0xDA 873 } // Constant Pool 874 875 0x0330; // access [ ACC_VALUE ACC_INTERFACE(bad) ACC_SUPER ACC_FINAL ] 876 #3;// this_cpx 877 #7;// super_cpx 878 879 [0] { // Interfaces 880 } // Interfaces 881 882 [2] { // fields 883 { // Member at 0xF7 884 0x0018; // access 885 #8; // name_cpx 886 #9; // sig_cpx 887 [0] { // Attributes 888 } // Attributes 889 } // Member 890 ; 891 { // Member at 0xFF 892 0x0010; // access 893 #10; // name_cpx 894 #11; // sig_cpx 895 [0] { // Attributes 896 } // Attributes 897 } // Member 898 } // fields 899 900 [1] { // methods 901 { // Member at 0x0141 902 0x0008; // access 903 #16; // name_cpx 904 #17; // sig_cpx 905 [1] { // Attributes 906 Attr(#14, 44) { // Code at 0x0149 907 2; // max_stack 908 2; // max_locals 909 Bytes[12]{ 910 0xCB00034C2B1ACC00; 911 0x024C2BB0; 912 }; 913 [0] { // Traps 914 } // end Traps 915 [1] { // Attributes 916 Attr(#15, 14) { // LineNumberTable at 0x0167 917 [3] { // LineNumberTable 918 0 8; // at 0x0173 919 4 9; // at 0x0177 920 10 10; // at 0x017B 921 } 922 } // end LineNumberTable 923 } // Attributes 924 } // end Code 925 } // Attributes 926 } // Member 927 } // methods 928 929 [1] { // Attributes 930 Attr(#19, 2) { // SourceFile at 0x01AC 931 #20; 932 } // end SourceFile 933 } // Attributes 934 } // end class ValueInterface 935 936 ////////////////////////////////////////////////////////////////////// 937 938 // Test that value type instance methods cannot be synchronized. 939 // 940 class ValueMethodSynch { 941 0xCAFEBABE; 942 0; // minor version 943 57; // version 944 [29] { // Constant Pool 945 ; // first element is empty 946 Method #7 #24; // #1 at 0x0A 947 Field #3 #25; // #2 at 0x0F 948 class #9; // #3 at 0x14 949 int 0x01234567; // #4 at 0x17 950 Method #3 #26; // #5 at 0x1C 951 Field #3 #27; // #6 at 0x21 952 class #28; // #7 at 0x26 953 Utf8 "VT"; // #8 at 0x29 954 Utf8 "ValueMethodSynch"; // #9 at 0x2E 955 Utf8 "ValueTypes"; // #10 at 0x41 956 Utf8 "LValueMethodSynch;"; // #11 at 0x4E 957 Utf8 "int_v"; // #12 at 0x63 958 Utf8 "I"; // #13 at 0x6B 959 Utf8 "<init>"; // #14 at 0x6F 960 Utf8 "()V"; // #15 at 0x78 961 Utf8 "Code"; // #16 at 0x7E 962 Utf8 "LineNumberTable"; // #17 at 0x85 963 Utf8 "instanceMethod"; // #18 at 0x97 964 Utf8 "makeValueMethodSynch"; // #19 at 0xA8 965 Utf8 "(I)LValueMethodSynch;"; // #20 at 0xBF 966 Utf8 "<clinit>"; // #21 at 0xD7 967 Utf8 "SourceFile"; // #22 at 0xE2 968 Utf8 "ValueMethodSynch.java"; // #23 at 0xEF 969 NameAndType #14 #15; // #24 at 0x0107 970 NameAndType #12 #13; // #25 at 0x010C 971 NameAndType #19 #20; // #26 at 0x0111 972 NameAndType #8 #11; // #27 at 0x0116 973 Utf8 "java/lang/Object"; // #28 at 0x011B 974 } // Constant Pool 975 976 0x0130; // access [ ACC_VALUE ACC_SUPER ACC_FINAL ] 977 #3;// this_cpx 978 #7;// super_cpx 979 980 [0] { // Interfaces 981 } // Interfaces 982 983 [2] { // fields 984 { // Member at 0x0138 985 0x0118; // access 986 #8; // name_cpx 987 #11; // sig_cpx 988 [0] { // Attributes 989 } // Attributes 990 } // Member 991 ; 992 { // Member at 0x0140 993 0x0010; // access 994 #12; // name_cpx 995 #13; // sig_cpx 996 [0] { // Attributes 997 } // Attributes 998 } // Member 999 } // fields 1000 1001 [4] { // methods 1002 { // Member at 0x014A 1003 0x0000; // access 1004 #14; // name_cpx 1005 #15; // sig_cpx 1006 [1] { // Attributes 1007 Attr(#16, 42) { // Code at 0x0152 1008 2; // max_stack 1009 1; // max_locals 1010 Bytes[10]{ 1011 0x2AB700012A04B500; 1012 0x02B1; 1013 }; 1014 [0] { // Traps 1015 } // end Traps 1016 [1] { // Attributes 1017 Attr(#17, 14) { // LineNumberTable at 0x016E 1018 [3] { // LineNumberTable 1019 0 4; // at 0x017A 1020 4 5; // at 0x017E 1021 9 6; // at 0x0182 1022 } 1023 } // end LineNumberTable 1024 } // Attributes 1025 } // end Code 1026 } // Attributes 1027 } // Member 1028 ; 1029 { // Member at 0x0182 1030 0x0020; // access [ ACC_SYNCHRONIZED(bad) ] 1031 #18; // name_cpx 1032 #15; // sig_cpx 1033 [1] { // Attributes 1034 Attr(#16, 25) { // Code at 0x018A 1035 0; // max_stack 1036 1; // max_locals 1037 Bytes[1]{ 1038 0xB1; 1039 }; 1040 [0] { // Traps 1041 } // end Traps 1042 [1] { // Attributes 1043 Attr(#17, 6) { // LineNumberTable at 0x019D 1044 [1] { // LineNumberTable 1045 0 8; // at 0x01A9 1046 } 1047 } // end LineNumberTable 1048 } // Attributes 1049 } // end Code 1050 } // Attributes 1051 } // Member 1052 ; 1053 { // Member at 0x01A9 1054 0x0008; // access 1055 #19; // name_cpx 1056 #20; // sig_cpx 1057 [1] { // Attributes 1058 Attr(#16, 44) { // Code at 0x01B1 1059 2; // max_stack 1060 2; // max_locals 1061 Bytes[12]{ 1062 0xCB00034C2B1ACC00; 1063 0x024C2BB0; 1064 }; 1065 [0] { // Traps 1066 } // end Traps 1067 [1] { // Attributes 1068 Attr(#17, 14) { // LineNumberTable at 0x01CF 1069 [3] { // LineNumberTable 1070 0 11; // at 0x01DB 1071 4 12; // at 0x01DF 1072 10 13; // at 0x01E3 1073 } 1074 } // end LineNumberTable 1075 } // Attributes 1076 } // end Code 1077 } // Attributes 1078 } // Member 1079 ; 1080 { // Member at 0x01E3 1081 0x0008; // access 1082 #21; // name_cpx 1083 #15; // sig_cpx 1084 [1] { // Attributes 1085 Attr(#16, 33) { // Code at 0x01EB 1086 1; // max_stack 1087 0; // max_locals 1088 Bytes[9]{ 1089 0x1204B80005B30006; 1090 0xB1; 1091 }; 1092 [0] { // Traps 1093 } // end Traps 1094 [1] { // Attributes 1095 Attr(#17, 6) { // LineNumberTable at 0x0206 1096 [1] { // LineNumberTable 1097 0 2; // at 0x0212 1098 } 1099 } // end LineNumberTable 1100 } // Attributes 1101 } // end Code 1102 } // Attributes 1103 } // Member 1104 } // methods 1105 1106 [2] { // Attributes 1107 Attr(#22, 2) { // SourceFile at 0x0214 1108 #23; 1109 } // end SourceFile 1110 ; 1111 Attr(#10, 4) { // ValueTypes at 0x021C 1112 0x00010003; 1113 } // end ValueTypes 1114 } // Attributes 1115 } // end class ValueMethodSynch 1116 1117 ////////////////////////////////////////////////////////////////////// 1118 1119 // Test that a value type's super class must be java.lang.Object. 1120 // 1121 class ValueSuperClass { 1122 0xCAFEBABE; 1123 0; // minor version 1124 57; // version 1125 [30] { // Constant Pool 1126 ; // first element is empty 1127 Method #7 #23; // #1 at 0x0A 1128 Field #3 #24; // #2 at 0x0F 1129 class #9; // #3 at 0x14 1130 int 0x01234567; // #4 at 0x17 1131 Method #3 #25; // #5 at 0x1C 1132 Field #3 #26; // #6 at 0x21 1133 class #27; // #7 at 0x26 1134 Utf8 "VT"; // #8 at 0x29 1135 Utf8 "ValueSuperClass"; // #9 at 0x2E 1136 Utf8 "ValueTypes"; // #10 at 0x36 1137 Utf8 "LValueSuperClass;"; // #11 at 0x43 1138 Utf8 "int_v"; // #12 at 0x4D 1139 Utf8 "I"; // #13 at 0x55 1140 Utf8 "<init>"; // #14 at 0x59 1141 Utf8 "()V"; // #15 at 0x62 1142 Utf8 "Code"; // #16 at 0x68 1143 Utf8 "LineNumberTable"; // #17 at 0x6F 1144 Utf8 "makeValueSuperClass"; // #18 at 0x81 1145 Utf8 "(I)LValueSuperClass;"; // #19 at 0x8D 1146 Utf8 "<clinit>"; // #20 at 0x9A 1147 Utf8 "SourceFile"; // #21 at 0xA5 1148 Utf8 "ValueSuperClass.java"; // #22 at 0xB2 1149 NameAndType #14 #15; // #23 at 0xBF 1150 NameAndType #12 #13; // #24 at 0xC4 1151 NameAndType #18 #19; // #25 at 0xC9 1152 NameAndType #8 #11; // #26 at 0xCE 1153 Utf8 "java/lang/Object"; // #27 at 0xD3 1154 class #29; // #28 1155 Utf8 "java/lang/Throwable"; // #29 1156 } // Constant Pool 1157 1158 0x0130; // access [ ACC_SUPER ACC_FINAL ] 1159 #3;// this_cpx 1160 #28;// super_cpx 1161 1162 [0] { // Interfaces 1163 } // Interfaces 1164 1165 [2] { // fields 1166 { // Member at 0xF0 1167 0x0118; // access 1168 #8; // name_cpx 1169 #11; // sig_cpx 1170 [0] { // Attributes 1171 } // Attributes 1172 } // Member 1173 ; 1174 { // Member at 0xF8 1175 0x0010; // access 1176 #12; // name_cpx 1177 #13; // sig_cpx 1178 [0] { // Attributes 1179 } // Attributes 1180 } // Member 1181 } // fields 1182 1183 [3] { // methods 1184 { // Member at 0x0102 1185 0x0000; // access 1186 #14; // name_cpx 1187 #15; // sig_cpx 1188 [1] { // Attributes 1189 Attr(#16, 42) { // Code at 0x010A 1190 2; // max_stack 1191 1; // max_locals 1192 Bytes[10]{ 1193 0x2AB700012A04B500; 1194 0x02B1; 1195 }; 1196 [0] { // Traps 1197 } // end Traps 1198 [1] { // Attributes 1199 Attr(#17, 14) { // LineNumberTable at 0x0126 1200 [3] { // LineNumberTable 1201 0 4; // at 0x0132 1202 4 5; // at 0x0136 1203 9 6; // at 0x013A 1204 } 1205 } // end LineNumberTable 1206 } // Attributes 1207 } // end Code 1208 } // Attributes 1209 } // Member 1210 ; 1211 { // Member at 0x013A 1212 0x0008; // access 1213 #18; // name_cpx 1214 #19; // sig_cpx 1215 [1] { // Attributes 1216 Attr(#16, 44) { // Code at 0x0142 1217 2; // max_stack 1218 2; // max_locals 1219 Bytes[12]{ 1220 0xCB00034C2B1ACC00; 1221 0x024C2BB0; 1222 }; 1223 [0] { // Traps 1224 } // end Traps 1225 [1] { // Attributes 1226 Attr(#17, 14) { // LineNumberTable at 0x0160 1227 [3] { // LineNumberTable 1228 0 8; // at 0x016C 1229 4 9; // at 0x0170 1230 10 10; // at 0x0174 1231 } 1232 } // end LineNumberTable 1233 } // Attributes 1234 } // end Code 1235 } // Attributes 1236 } // Member 1237 ; 1238 { // Member at 0x0174 1239 0x0008; // access 1240 #20; // name_cpx 1241 #15; // sig_cpx 1242 [1] { // Attributes 1243 Attr(#16, 33) { // Code at 0x017C 1244 1; // max_stack 1245 0; // max_locals 1246 Bytes[9]{ 1247 0x1204B80005B30006; 1248 0xB1; 1249 }; 1250 [0] { // Traps 1251 } // end Traps 1252 [1] { // Attributes 1253 Attr(#17, 6) { // LineNumberTable at 0x0197 1254 [1] { // LineNumberTable 1255 0 2; // at 0x01A3 1256 } 1257 } // end LineNumberTable 1258 } // Attributes 1259 } // end Code 1260 } // Attributes 1261 } // Member 1262 } // methods 1263 1264 [2] { // Attributes 1265 Attr(#21, 2) { // SourceFile at 0x01A5 1266 #22; 1267 } // end SourceFile 1268 ; 1269 Attr(#10, 4) { // ValueTypes at 0x01AD 1270 0x00010003; 1271 } // end ValueTypes 1272 } // Attributes 1273 } // end class ValueSuperClass 1274 1275 ////////////////////////////////////////////////////////////////////// 1276 1277 // Value types Circ and Circ2 have fields of each other's type. This should 1278 // cause a ClassCircularityError exception when one of them is being loaded. 1279 // 1280 // The value types are based on these two Java classes: 1281 // 1282 // final value class Circ { 1283 // static final Circ VT = makeCirc(0x01234567); 1284 // final int int_v; 1285 // final Circ2 v2; 1286 // Circ() { 1287 // int_v = 1; 1288 // v2 = Circ2.default; 1289 // } 1290 // static Circ makeCirc(int x) { 1291 // Circ v = Circ.default; 1292 // v = __WithField(v.int_v, x); 1293 // return v; 1294 // } 1295 // } 1296 //---------------------------------------------------------------- 1297 // final value class Circ2 { 1298 // static final Circ2 VT = makeCirc2('\u0123'); 1299 // final char char_v; 1300 // final Circ vv; 1301 // Circ2() { 1302 // char_v = 'z'; 1303 // vv = Circ.default; 1304 // } 1305 // static Circ2 makeCirc2(char c) { 1306 // Circ2 v = Circ2.default; 1307 // v = __WithField(v.char_v, c); 1308 // return v; 1309 // } 1310 // } 1311 1312 class Circ { 1313 0xCAFEBABE; 1314 0; // minor version 1315 57; // version 1316 [69] { // Constant Pool 1317 ; // first element is empty 1318 Method #13 #39; // #1 at 0x0A 1319 class #40; // #2 at 0x0F 1320 Field #2 #41; // #3 at 0x12 1321 InvokeDynamic 0s #44; // #4 at 0x17 1322 InvokeDynamic 0s #45; // #5 at 0x1C 1323 InvokeDynamic 0s #46; // #6 at 0x21 1324 InvokeDynamic 0s #47; // #7 at 0x26 1325 int 0x01234567; // #8 at 0x2B 1326 Method #2 #48; // #9 at 0x30 1327 Field #2 #49; // #10 at 0x35 1328 class #50; // #11 at 0x3A 1329 Field #2 #51; // #12 at 0x3D 1330 class #52; // #13 at 0x42 1331 Utf8 "VT"; // #14 at 0x45 1332 Utf8 "QCirc;"; // #15 at 0x4A 1333 Utf8 "int_v"; // #16 at 0x53 1334 Utf8 "I"; // #17 at 0x5B 1335 Utf8 "v2"; // #18 at 0x5F 1336 Utf8 "QCirc2;"; // #19 at 0x64 1337 Utf8 "<init>"; // #20 at 0x6E 1338 Utf8 "()V"; // #21 at 0x77 1339 Utf8 "Code"; // #22 at 0x7D 1340 Utf8 "LineNumberTable"; // #23 at 0x84 1341 Utf8 "makeCirc"; // #24 at 0x96 1342 Utf8 "(I)QCirc;"; // #25 at 0xA1 1343 Utf8 "hashCode"; // #26 at 0xAD 1344 Utf8 "()I"; // #27 at 0xB8 1345 Utf8 "equals"; // #28 at 0xBE 1346 Utf8 "(Ljava/lang/Object;)Z"; // #29 at 0xC7 1347 Utf8 "toString"; // #30 at 0xDF 1348 Utf8 "()Ljava/lang/String;"; // #31 at 0xEA 1349 Utf8 "longHashCode"; // #32 at 0x0101 1350 Utf8 "()J"; // #33 at 0x0110 1351 Utf8 "<clinit>"; // #34 at 0x0116 1352 Utf8 "$makeValue$"; // #35 at 0x0121 1353 Utf8 "()QCirc;"; // #36 at 0x012F 1354 Utf8 "SourceFile"; // #37 at 0x013A 1355 Utf8 "Circ.java"; // #38 at 0x0147 1356 NameAndType #20 #21; // #39 at 0x0153 1357 Utf8 "Circ"; // #40 at 0x0158 1358 NameAndType #16 #17; // #41 at 0x015F 1359 Utf8 "BootstrapMethods"; // #42 at 0x0164 1360 MethodHandle 6b #53; // #43 at 0x0177 1361 NameAndType #26 #54; // #44 at 0x017B 1362 NameAndType #28 #55; // #45 at 0x0180 1363 NameAndType #30 #56; // #46 at 0x0185 1364 NameAndType #32 #57; // #47 at 0x018A 1365 NameAndType #24 #25; // #48 at 0x018F 1366 NameAndType #14 #15; // #49 at 0x0194 1367 Utf8 "Circ2"; // #50 at 0x0199 1368 NameAndType #18 #19; // #51 at 0x01A1 1369 Utf8 "java/lang/Object"; // #52 at 0x01A6 1370 Method #58 #59; // #53 at 0x01B9 1371 Utf8 "(Ljava/lang/Object;)I"; // #54 at 0x01BE 1372 Utf8 "(Ljava/lang/Object;Ljava/lang/Object;)Z"; // #55 at 0x01D6 1373 Utf8 "(Ljava/lang/Object;)Ljava/lang/String;"; // #56 at 0x0200 1374 Utf8 "(Ljava/lang/Object;)J"; // #57 at 0x0229 1375 class #60; // #58 at 0x0241 1376 NameAndType #61 #65; // #59 at 0x0244 1377 Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #60 at 0x0249 1378 Utf8 "makeBootstrapMethod"; // #61 at 0x0272 1379 class #67; // #62 at 0x0288 1380 Utf8 "Lookup"; // #63 at 0x028B 1381 Utf8 "InnerClasses"; // #64 at 0x0294 1382 Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #65 at 0x02A3 1383 class #68; // #66 at 0x0319 1384 Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #67 at 0x031C 1385 Utf8 "java/lang/invoke/MethodHandles"; // #68 at 0x0344 1386 } // Constant Pool 1387 1388 0x0130; // access [ ACC_SUPER ACC_FINAL ] 1389 #2;// this_cpx 1390 #13;// super_cpx 1391 1392 [0] { // Interfaces 1393 } // Interfaces 1394 1395 [3] { // fields 1396 { // Member at 0x036F 1397 0x0018; // access 1398 #14; // name_cpx 1399 #15; // sig_cpx 1400 [0] { // Attributes 1401 } // Attributes 1402 } // Member 1403 ; 1404 { // Member at 0x0377 1405 0x0010; // access 1406 #16; // name_cpx 1407 #17; // sig_cpx 1408 [0] { // Attributes 1409 } // Attributes 1410 } // Member 1411 ; 1412 { // Member at 0x037F 1413 0x0010; // access 1414 #18; // name_cpx 1415 #19; // sig_cpx 1416 [0] { // Attributes 1417 } // Attributes 1418 } // Member 1419 } // fields 1420 1421 [8] { // methods 1422 { // Member at 0x0389 1423 0x0000; // access 1424 #20; // name_cpx 1425 #21; // sig_cpx 1426 [1] { // Attributes 1427 Attr(#22, 29) { // Code at 0x0391 1428 1; // max_stack 1429 1; // max_locals 1430 Bytes[5]{ 1431 0x2AB70001B1; 1432 }; 1433 [0] { // Traps 1434 } // end Traps 1435 [1] { // Attributes 1436 Attr(#23, 6) { // LineNumberTable at 0x03A8 1437 [1] { // LineNumberTable 1438 0 6; // at 0x03B4 1439 } 1440 } // end LineNumberTable 1441 } // Attributes 1442 } // end Code 1443 } // Attributes 1444 } // Member 1445 ; 1446 { // Member at 0x03B4 1447 0x0008; // access 1448 #24; // name_cpx 1449 #25; // sig_cpx 1450 [1] { // Attributes 1451 Attr(#22, 45) { // Code at 0x03BC 1452 2; // max_stack 1453 2; // max_locals 1454 Bytes[13]{ 1455 0xCB00024C1A2B5FCC; 1456 0x00034C2BB0; 1457 }; 1458 [0] { // Traps 1459 } // end Traps 1460 [1] { // Attributes 1461 Attr(#23, 14) { // LineNumberTable at 0x03DB 1462 [3] { // LineNumberTable 1463 0 12; // at 0x03E7 1464 4 13; // at 0x03EB 1465 11 14; // at 0x03EF 1466 } 1467 } // end LineNumberTable 1468 } // Attributes 1469 } // end Code 1470 } // Attributes 1471 } // Member 1472 ; 1473 { // Member at 0x03EF 1474 0x0011; // access 1475 #26; // name_cpx 1476 #27; // sig_cpx 1477 [1] { // Attributes 1478 Attr(#22, 31) { // Code at 0x03F7 1479 1; // max_stack 1480 1; // max_locals 1481 Bytes[7]{ 1482 0x2ABA00040000AC; 1483 }; 1484 [0] { // Traps 1485 } // end Traps 1486 [1] { // Attributes 1487 Attr(#23, 6) { // LineNumberTable at 0x0410 1488 [1] { // LineNumberTable 1489 0 1; // at 0x041C 1490 } 1491 } // end LineNumberTable 1492 } // Attributes 1493 } // end Code 1494 } // Attributes 1495 } // Member 1496 ; 1497 { // Member at 0x041C 1498 0x0011; // access 1499 #28; // name_cpx 1500 #29; // sig_cpx 1501 [1] { // Attributes 1502 Attr(#22, 32) { // Code at 0x0424 1503 2; // max_stack 1504 2; // max_locals 1505 Bytes[8]{ 1506 0x2A2BBA00050000AC; 1507 }; 1508 [0] { // Traps 1509 } // end Traps 1510 [1] { // Attributes 1511 Attr(#23, 6) { // LineNumberTable at 0x043E 1512 [1] { // LineNumberTable 1513 0 1; // at 0x044A 1514 } 1515 } // end LineNumberTable 1516 } // Attributes 1517 } // end Code 1518 } // Attributes 1519 } // Member 1520 ; 1521 { // Member at 0x044A 1522 0x0011; // access 1523 #30; // name_cpx 1524 #31; // sig_cpx 1525 [1] { // Attributes 1526 Attr(#22, 31) { // Code at 0x0452 1527 1; // max_stack 1528 1; // max_locals 1529 Bytes[7]{ 1530 0x2ABA00060000B0; 1531 }; 1532 [0] { // Traps 1533 } // end Traps 1534 [1] { // Attributes 1535 Attr(#23, 6) { // LineNumberTable at 0x046B 1536 [1] { // LineNumberTable 1537 0 1; // at 0x0477 1538 } 1539 } // end LineNumberTable 1540 } // Attributes 1541 } // end Code 1542 } // Attributes 1543 } // Member 1544 ; 1545 { // Member at 0x0477 1546 0x0011; // access 1547 #32; // name_cpx 1548 #33; // sig_cpx 1549 [1] { // Attributes 1550 Attr(#22, 31) { // Code at 0x047F 1551 2; // max_stack 1552 1; // max_locals 1553 Bytes[7]{ 1554 0x2ABA00070000AD; 1555 }; 1556 [0] { // Traps 1557 } // end Traps 1558 [1] { // Attributes 1559 Attr(#23, 6) { // LineNumberTable at 0x0498 1560 [1] { // LineNumberTable 1561 0 1; // at 0x04A4 1562 } 1563 } // end LineNumberTable 1564 } // Attributes 1565 } // end Code 1566 } // Attributes 1567 } // Member 1568 ; 1569 { // Member at 0x04A4 1570 0x0008; // access 1571 #34; // name_cpx 1572 #21; // sig_cpx 1573 [1] { // Attributes 1574 Attr(#22, 33) { // Code at 0x04AC 1575 1; // max_stack 1576 0; // max_locals 1577 Bytes[9]{ 1578 0x1208B80009B3000A; 1579 0xB1; 1580 }; 1581 [0] { // Traps 1582 } // end Traps 1583 [1] { // Attributes 1584 Attr(#23, 6) { // LineNumberTable at 0x04C7 1585 [1] { // LineNumberTable 1586 0 2; // at 0x04D3 1587 } 1588 } // end LineNumberTable 1589 } // Attributes 1590 } // end Code 1591 } // Attributes 1592 } // Member 1593 ; 1594 { // Member at 0x04D3 1595 0x1008; // access 1596 #35; // name_cpx 1597 #36; // sig_cpx 1598 [1] { // Attributes 1599 Attr(#22, 58) { // Code at 0x04DB 1600 2; // max_stack 1601 1; // max_locals 1602 Bytes[22]{ 1603 0xCB00024B042A5FCC; 1604 0x00034BCB000B2A5F; 1605 0xCC000C4B2AB0; 1606 }; 1607 [0] { // Traps 1608 } // end Traps 1609 [1] { // Attributes 1610 Attr(#23, 18) { // LineNumberTable at 0x0503 1611 [4] { // LineNumberTable 1612 0 6; // at 0x050F 1613 4 7; // at 0x0513 1614 11 8; // at 0x0517 1615 20 9; // at 0x051B 1616 } 1617 } // end LineNumberTable 1618 } // Attributes 1619 } // end Code 1620 } // Attributes 1621 } // Member 1622 } // methods 1623 1624 [3] { // Attributes 1625 Attr(#37, 2) { // SourceFile at 0x051D 1626 #38; 1627 } // end SourceFile 1628 ; 1629 Attr(#64, 10) { // InnerClasses at 0x0525 1630 [1] { // InnerClasses 1631 #62 #66 #63 25; // at 0x0535 1632 } 1633 } // end InnerClasses 1634 ; 1635 Attr(#42, 6) { // BootstrapMethods at 0x0535 1636 [1] { // bootstrap_methods 1637 { // bootstrap_method 1638 #43; // bootstrap_method_ref 1639 [0] { // bootstrap_arguments 1640 } // bootstrap_arguments 1641 } // bootstrap_method 1642 } 1643 } // end BootstrapMethods 1644 } // Attributes 1645 } // end class Circ 1646 1647 class Circ2 { 1648 0xCAFEBABE; 1649 0; // minor version 1650 57; // version 1651 [68] { // Constant Pool 1652 ; // first element is empty 1653 Method #12 #38; // #1 at 0x0A 1654 class #39; // #2 at 0x0F 1655 Field #2 #40; // #3 at 0x12 1656 InvokeDynamic 0s #43; // #4 at 0x17 1657 InvokeDynamic 0s #44; // #5 at 0x1C 1658 InvokeDynamic 0s #45; // #6 at 0x21 1659 InvokeDynamic 0s #46; // #7 at 0x26 1660 Method #2 #47; // #8 at 0x2B 1661 Field #2 #48; // #9 at 0x30 1662 class #49; // #10 at 0x35 1663 Field #2 #50; // #11 at 0x38 1664 class #51; // #12 at 0x3D 1665 Utf8 "VT"; // #13 at 0x40 1666 Utf8 "QCirc2;"; // #14 at 0x45 1667 Utf8 "char_v"; // #15 at 0x4F 1668 Utf8 "C"; // #16 at 0x58 1669 Utf8 "vv"; // #17 at 0x5C 1670 Utf8 "QCirc;"; // #18 at 0x61 1671 Utf8 "<init>"; // #19 at 0x6A 1672 Utf8 "()V"; // #20 at 0x73 1673 Utf8 "Code"; // #21 at 0x79 1674 Utf8 "LineNumberTable"; // #22 at 0x80 1675 Utf8 "makeCirc2"; // #23 at 0x92 1676 Utf8 "(C)QCirc2;"; // #24 at 0x9E 1677 Utf8 "hashCode"; // #25 at 0xAB 1678 Utf8 "()I"; // #26 at 0xB6 1679 Utf8 "equals"; // #27 at 0xBC 1680 Utf8 "(Ljava/lang/Object;)Z"; // #28 at 0xC5 1681 Utf8 "toString"; // #29 at 0xDD 1682 Utf8 "()Ljava/lang/String;"; // #30 at 0xE8 1683 Utf8 "longHashCode"; // #31 at 0xFF 1684 Utf8 "()J"; // #32 at 0x010E 1685 Utf8 "<clinit>"; // #33 at 0x0114 1686 Utf8 "$makeValue$"; // #34 at 0x011F 1687 Utf8 "()QCirc2;"; // #35 at 0x012D 1688 Utf8 "SourceFile"; // #36 at 0x0139 1689 Utf8 "Circ2.java"; // #37 at 0x0146 1690 NameAndType #19 #20; // #38 at 0x0153 1691 Utf8 "Circ2"; // #39 at 0x0158 1692 NameAndType #15 #16; // #40 at 0x0160 1693 Utf8 "BootstrapMethods"; // #41 at 0x0165 1694 MethodHandle 6b #52; // #42 at 0x0178 1695 NameAndType #25 #53; // #43 at 0x017C 1696 NameAndType #27 #54; // #44 at 0x0181 1697 NameAndType #29 #55; // #45 at 0x0186 1698 NameAndType #31 #56; // #46 at 0x018B 1699 NameAndType #23 #24; // #47 at 0x0190 1700 NameAndType #13 #14; // #48 at 0x0195 1701 Utf8 "Circ"; // #49 at 0x019A 1702 NameAndType #17 #18; // #50 at 0x01A1 1703 Utf8 "java/lang/Object"; // #51 at 0x01A6 1704 Method #57 #58; // #52 at 0x01B9 1705 Utf8 "(Ljava/lang/Object;)I"; // #53 at 0x01BE 1706 Utf8 "(Ljava/lang/Object;Ljava/lang/Object;)Z"; // #54 at 0x01D6 1707 Utf8 "(Ljava/lang/Object;)Ljava/lang/String;"; // #55 at 0x0200 1708 Utf8 "(Ljava/lang/Object;)J"; // #56 at 0x0229 1709 class #59; // #57 at 0x0241 1710 NameAndType #60 #64; // #58 at 0x0244 1711 Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #59 at 0x0249 1712 Utf8 "makeBootstrapMethod"; // #60 at 0x0272 1713 class #66; // #61 at 0x0288 1714 Utf8 "Lookup"; // #62 at 0x028B 1715 Utf8 "InnerClasses"; // #63 at 0x0294 1716 Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #64 at 0x02A3 1717 class #67; // #65 at 0x0319 1718 Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #66 at 0x031C 1719 Utf8 "java/lang/invoke/MethodHandles"; // #67 at 0x0344 1720 } // Constant Pool 1721 1722 0x0130; // access [ ACC_SUPER ACC_FINAL ] 1723 #2;// this_cpx 1724 #12;// super_cpx 1725 1726 [0] { // Interfaces 1727 } // Interfaces 1728 1729 [3] { // fields 1730 { // Member at 0x036F 1731 0x0018; // access 1732 #13; // name_cpx 1733 #14; // sig_cpx 1734 [0] { // Attributes 1735 } // Attributes 1736 } // Member 1737 ; 1738 { // Member at 0x0377 1739 0x0010; // access 1740 #15; // name_cpx 1741 #16; // sig_cpx 1742 [0] { // Attributes 1743 } // Attributes 1744 } // Member 1745 ; 1746 { // Member at 0x037F 1747 0x0010; // access 1748 #17; // name_cpx 1749 #18; // sig_cpx 1750 [0] { // Attributes 1751 } // Attributes 1752 } // Member 1753 } // fields 1754 1755 [8] { // methods 1756 { // Member at 0x0389 1757 0x0000; // access 1758 #19; // name_cpx 1759 #20; // sig_cpx 1760 [1] { // Attributes 1761 Attr(#21, 29) { // Code at 0x0391 1762 1; // max_stack 1763 1; // max_locals 1764 Bytes[5]{ 1765 0x2AB70001B1; 1766 }; 1767 [0] { // Traps 1768 } // end Traps 1769 [1] { // Attributes 1770 Attr(#22, 6) { // LineNumberTable at 0x03A8 1771 [1] { // LineNumberTable 1772 0 6; // at 0x03B4 1773 } 1774 } // end LineNumberTable 1775 } // Attributes 1776 } // end Code 1777 } // Attributes 1778 } // Member 1779 ; 1780 { // Member at 0x03B4 1781 0x0008; // access 1782 #23; // name_cpx 1783 #24; // sig_cpx 1784 [1] { // Attributes 1785 Attr(#21, 45) { // Code at 0x03BC 1786 2; // max_stack 1787 2; // max_locals 1788 Bytes[13]{ 1789 0xCB00024C1A2B5FCC; 1790 0x00034C2BB0; 1791 }; 1792 [0] { // Traps 1793 } // end Traps 1794 [1] { // Attributes 1795 Attr(#22, 14) { // LineNumberTable at 0x03DB 1796 [3] { // LineNumberTable 1797 0 12; // at 0x03E7 1798 4 13; // at 0x03EB 1799 11 14; // at 0x03EF 1800 } 1801 } // end LineNumberTable 1802 } // Attributes 1803 } // end Code 1804 } // Attributes 1805 } // Member 1806 ; 1807 { // Member at 0x03EF 1808 0x0011; // access 1809 #25; // name_cpx 1810 #26; // sig_cpx 1811 [1] { // Attributes 1812 Attr(#21, 31) { // Code at 0x03F7 1813 1; // max_stack 1814 1; // max_locals 1815 Bytes[7]{ 1816 0x2ABA00040000AC; 1817 }; 1818 [0] { // Traps 1819 } // end Traps 1820 [1] { // Attributes 1821 Attr(#22, 6) { // LineNumberTable at 0x0410 1822 [1] { // LineNumberTable 1823 0 1; // at 0x041C 1824 } 1825 } // end LineNumberTable 1826 } // Attributes 1827 } // end Code 1828 } // Attributes 1829 } // Member 1830 ; 1831 { // Member at 0x041C 1832 0x0011; // access 1833 #27; // name_cpx 1834 #28; // sig_cpx 1835 [1] { // Attributes 1836 Attr(#21, 32) { // Code at 0x0424 1837 2; // max_stack 1838 2; // max_locals 1839 Bytes[8]{ 1840 0x2A2BBA00050000AC; 1841 }; 1842 [0] { // Traps 1843 } // end Traps 1844 [1] { // Attributes 1845 Attr(#22, 6) { // LineNumberTable at 0x043E 1846 [1] { // LineNumberTable 1847 0 1; // at 0x044A 1848 } 1849 } // end LineNumberTable 1850 } // Attributes 1851 } // end Code 1852 } // Attributes 1853 } // Member 1854 ; 1855 { // Member at 0x044A 1856 0x0011; // access 1857 #29; // name_cpx 1858 #30; // sig_cpx 1859 [1] { // Attributes 1860 Attr(#21, 31) { // Code at 0x0452 1861 1; // max_stack 1862 1; // max_locals 1863 Bytes[7]{ 1864 0x2ABA00060000B0; 1865 }; 1866 [0] { // Traps 1867 } // end Traps 1868 [1] { // Attributes 1869 Attr(#22, 6) { // LineNumberTable at 0x046B 1870 [1] { // LineNumberTable 1871 0 1; // at 0x0477 1872 } 1873 } // end LineNumberTable 1874 } // Attributes 1875 } // end Code 1876 } // Attributes 1877 } // Member 1878 ; 1879 { // Member at 0x0477 1880 0x0011; // access 1881 #31; // name_cpx 1882 #32; // sig_cpx 1883 [1] { // Attributes 1884 Attr(#21, 31) { // Code at 0x047F 1885 2; // max_stack 1886 1; // max_locals 1887 Bytes[7]{ 1888 0x2ABA00070000AD; 1889 }; 1890 [0] { // Traps 1891 } // end Traps 1892 [1] { // Attributes 1893 Attr(#22, 6) { // LineNumberTable at 0x0498 1894 [1] { // LineNumberTable 1895 0 1; // at 0x04A4 1896 } 1897 } // end LineNumberTable 1898 } // Attributes 1899 } // end Code 1900 } // Attributes 1901 } // Member 1902 ; 1903 { // Member at 0x04A4 1904 0x0008; // access 1905 #33; // name_cpx 1906 #20; // sig_cpx 1907 [1] { // Attributes 1908 Attr(#21, 34) { // Code at 0x04AC 1909 1; // max_stack 1910 0; // max_locals 1911 Bytes[10]{ 1912 0x110123B80008B300; 1913 0x09B1; 1914 }; 1915 [0] { // Traps 1916 } // end Traps 1917 [1] { // Attributes 1918 Attr(#22, 6) { // LineNumberTable at 0x04C8 1919 [1] { // LineNumberTable 1920 0 2; // at 0x04D4 1921 } 1922 } // end LineNumberTable 1923 } // Attributes 1924 } // end Code 1925 } // Attributes 1926 } // Member 1927 ; 1928 { // Member at 0x04D4 1929 0x1008; // access 1930 #34; // name_cpx 1931 #35; // sig_cpx 1932 [1] { // Attributes 1933 Attr(#21, 59) { // Code at 0x04DC 1934 2; // max_stack 1935 1; // max_locals 1936 Bytes[23]{ 1937 0xCB00024B107A2A5F; 1938 0xCC00034BCB000A2A; 1939 0x5FCC000B4B2AB0; 1940 }; 1941 [0] { // Traps 1942 } // end Traps 1943 [1] { // Attributes 1944 Attr(#22, 18) { // LineNumberTable at 0x0505 1945 [4] { // LineNumberTable 1946 0 6; // at 0x0511 1947 4 7; // at 0x0515 1948 12 8; // at 0x0519 1949 21 9; // at 0x051D 1950 } 1951 } // end LineNumberTable 1952 } // Attributes 1953 } // end Code 1954 } // Attributes 1955 } // Member 1956 } // methods 1957 1958 [3] { // Attributes 1959 Attr(#36, 2) { // SourceFile at 0x051F 1960 #37; 1961 } // end SourceFile 1962 ; 1963 Attr(#63, 10) { // InnerClasses at 0x0527 1964 [1] { // InnerClasses 1965 #61 #65 #62 25; // at 0x0537 1966 } 1967 } // end InnerClasses 1968 ; 1969 Attr(#41, 6) { // BootstrapMethods at 0x0537 1970 [1] { // bootstrap_methods 1971 { // bootstrap_method 1972 #42; // bootstrap_method_ref 1973 [0] { // bootstrap_arguments 1974 } // bootstrap_arguments 1975 } // bootstrap_method 1976 } 1977 } // end BootstrapMethods 1978 } // Attributes 1979 } // end class Circ2 1980 1981 1982 ////////////////////////////////////////////////////////////////////// 1983 1984 // Value types CircStaticA and CircStaticB have static fields of each other's 1985 // type. This should cause a ClassCircularityError exception when one of them 1986 // is being loaded. 1987 // 1988 // The value types are based on these two Java classes: 1989 // 1990 // final value class CircStaticA { 1991 // static final CircStaticA VT = makeCircStaticA(0x01234567); 1992 // final int int_v; 1993 // static final CircStaticB v2 = CircStaticB.default; 1994 // CircStaticA() { 1995 // int_v = 1; 1996 // } 1997 // static CircStaticA makeCircStaticA(int x) { 1998 // CircStaticA v = CircStaticA.default; 1999 // v = __WithField(v.int_v, x); 2000 // return v; 2001 // } 2002 // } 2003 //---------------------------------------------------------------- 2004 // final value class CircStaticB { 2005 // static final CircStaticB VT = makeCircStaticB(0x01234567); 2006 // final int int_v; 2007 // static final CircStaticA v2 = CircStaticA.default; 2008 // CircStaticB() { 2009 // int_v = 1; 2010 // } 2011 // static CircStaticB makeCircStaticB(int x) { 2012 // CircStaticB v = CircStaticB.default; 2013 // v = __WithField(v.int_v, x); 2014 // return v; 2015 // } 2016 // } 2017 2018 class CircStaticA { 2019 0xCAFEBABE; 2020 0; // minor version 2021 57; // version 2022 [69] { // Constant Pool 2023 ; // first element is empty 2024 Method #13 #39; // #1 at 0x0A 2025 class #40; // #2 at 0x0F 2026 Field #2 #41; // #3 at 0x12 2027 InvokeDynamic 0s #44; // #4 at 0x17 2028 InvokeDynamic 0s #45; // #5 at 0x1C 2029 InvokeDynamic 0s #46; // #6 at 0x21 2030 InvokeDynamic 0s #47; // #7 at 0x26 2031 int 0x01234567; // #8 at 0x2B 2032 Method #2 #48; // #9 at 0x30 2033 Field #2 #49; // #10 at 0x35 2034 class #50; // #11 at 0x3A 2035 Field #2 #51; // #12 at 0x3D 2036 class #52; // #13 at 0x42 2037 Utf8 "VT"; // #14 at 0x45 2038 Utf8 "QCircStaticA;"; // #15 at 0x4A 2039 Utf8 "int_v"; // #16 at 0x5A 2040 Utf8 "I"; // #17 at 0x62 2041 Utf8 "v2"; // #18 at 0x66 2042 Utf8 "QCircStaticB;"; // #19 at 0x6B 2043 Utf8 "<init>"; // #20 at 0x7B 2044 Utf8 "()V"; // #21 at 0x84 2045 Utf8 "Code"; // #22 at 0x8A 2046 Utf8 "LineNumberTable"; // #23 at 0x91 2047 Utf8 "makeCircStaticA"; // #24 at 0xA3 2048 Utf8 "(I)QCircStaticA;"; // #25 at 0xB5 2049 Utf8 "hashCode"; // #26 at 0xC8 2050 Utf8 "()I"; // #27 at 0xD3 2051 Utf8 "equals"; // #28 at 0xD9 2052 Utf8 "(Ljava/lang/Object;)Z"; // #29 at 0xE2 2053 Utf8 "toString"; // #30 at 0xFA 2054 Utf8 "()Ljava/lang/String;"; // #31 at 0x0105 2055 Utf8 "longHashCode"; // #32 at 0x011C 2056 Utf8 "()J"; // #33 at 0x012B 2057 Utf8 "<clinit>"; // #34 at 0x0131 2058 Utf8 "$makeValue$"; // #35 at 0x013C 2059 Utf8 "()QCircStaticA;"; // #36 at 0x014A 2060 Utf8 "SourceFile"; // #37 at 0x015C 2061 Utf8 "CircStaticA.java"; // #38 at 0x0169 2062 NameAndType #20 #21; // #39 at 0x017C 2063 Utf8 "CircStaticA"; // #40 at 0x0181 2064 NameAndType #16 #17; // #41 at 0x018F 2065 Utf8 "BootstrapMethods"; // #42 at 0x0194 2066 MethodHandle 6b #53; // #43 at 0x01A7 2067 NameAndType #26 #54; // #44 at 0x01AB 2068 NameAndType #28 #55; // #45 at 0x01B0 2069 NameAndType #30 #56; // #46 at 0x01B5 2070 NameAndType #32 #57; // #47 at 0x01BA 2071 NameAndType #24 #25; // #48 at 0x01BF 2072 NameAndType #14 #15; // #49 at 0x01C4 2073 Utf8 "CircStaticB"; // #50 at 0x01C9 2074 NameAndType #18 #19; // #51 at 0x01D7 2075 Utf8 "java/lang/Object"; // #52 at 0x01DC 2076 Method #58 #59; // #53 at 0x01EF 2077 Utf8 "(Ljava/lang/Object;)I"; // #54 at 0x01F4 2078 Utf8 "(Ljava/lang/Object;Ljava/lang/Object;)Z"; // #55 at 0x020C 2079 Utf8 "(Ljava/lang/Object;)Ljava/lang/String;"; // #56 at 0x0236 2080 Utf8 "(Ljava/lang/Object;)J"; // #57 at 0x025F 2081 class #60; // #58 at 0x0277 2082 NameAndType #61 #65; // #59 at 0x027A 2083 Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #60 at 0x027F 2084 Utf8 "makeBootstrapMethod"; // #61 at 0x02A8 2085 class #67; // #62 at 0x02BE 2086 Utf8 "Lookup"; // #63 at 0x02C1 2087 Utf8 "InnerClasses"; // #64 at 0x02CA 2088 Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #65 at 0x02D9 2089 class #68; // #66 at 0x034F 2090 Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #67 at 0x0352 2091 Utf8 "java/lang/invoke/MethodHandles"; // #68 at 0x037A 2092 } // Constant Pool 2093 2094 0x0130; // access [ ACC_SUPER ACC_FINAL ] 2095 #2;// this_cpx 2096 #13;// super_cpx 2097 2098 [0] { // Interfaces 2099 } // Interfaces 2100 2101 [3] { // fields 2102 { // Member at 0x03A5 2103 0x0018; // access 2104 #14; // name_cpx 2105 #15; // sig_cpx 2106 [0] { // Attributes 2107 } // Attributes 2108 } // Member 2109 ; 2110 { // Member at 0x03AD 2111 0x0010; // access 2112 #16; // name_cpx 2113 #17; // sig_cpx 2114 [0] { // Attributes 2115 } // Attributes 2116 } // Member 2117 ; 2118 { // Member at 0x03B5 2119 0x0018; // access 2120 #18; // name_cpx 2121 #19; // sig_cpx 2122 [0] { // Attributes 2123 } // Attributes 2124 } // Member 2125 } // fields 2126 2127 [8] { // methods 2128 { // Member at 0x03BF 2129 0x0000; // access 2130 #20; // name_cpx 2131 #21; // sig_cpx 2132 [1] { // Attributes 2133 Attr(#22, 29) { // Code at 0x03C7 2134 1; // max_stack 2135 1; // max_locals 2136 Bytes[5]{ 2137 0x2AB70001B1; 2138 }; 2139 [0] { // Traps 2140 } // end Traps 2141 [1] { // Attributes 2142 Attr(#23, 6) { // LineNumberTable at 0x03DE 2143 [1] { // LineNumberTable 2144 0 6; // at 0x03EA 2145 } 2146 } // end LineNumberTable 2147 } // Attributes 2148 } // end Code 2149 } // Attributes 2150 } // Member 2151 ; 2152 { // Member at 0x03EA 2153 0x0008; // access 2154 #24; // name_cpx 2155 #25; // sig_cpx 2156 [1] { // Attributes 2157 Attr(#22, 45) { // Code at 0x03F2 2158 2; // max_stack 2159 2; // max_locals 2160 Bytes[13]{ 2161 0xCB00024C1A2B5FCC; 2162 0x00034C2BB0; 2163 }; 2164 [0] { // Traps 2165 } // end Traps 2166 [1] { // Attributes 2167 Attr(#23, 14) { // LineNumberTable at 0x0411 2168 [3] { // LineNumberTable 2169 0 11; // at 0x041D 2170 4 12; // at 0x0421 2171 11 13; // at 0x0425 2172 } 2173 } // end LineNumberTable 2174 } // Attributes 2175 } // end Code 2176 } // Attributes 2177 } // Member 2178 ; 2179 { // Member at 0x0425 2180 0x0011; // access 2181 #26; // name_cpx 2182 #27; // sig_cpx 2183 [1] { // Attributes 2184 Attr(#22, 31) { // Code at 0x042D 2185 1; // max_stack 2186 1; // max_locals 2187 Bytes[7]{ 2188 0x2ABA00040000AC; 2189 }; 2190 [0] { // Traps 2191 } // end Traps 2192 [1] { // Attributes 2193 Attr(#23, 6) { // LineNumberTable at 0x0446 2194 [1] { // LineNumberTable 2195 0 1; // at 0x0452 2196 } 2197 } // end LineNumberTable 2198 } // Attributes 2199 } // end Code 2200 } // Attributes 2201 } // Member 2202 ; 2203 { // Member at 0x0452 2204 0x0011; // access 2205 #28; // name_cpx 2206 #29; // sig_cpx 2207 [1] { // Attributes 2208 Attr(#22, 32) { // Code at 0x045A 2209 2; // max_stack 2210 2; // max_locals 2211 Bytes[8]{ 2212 0x2A2BBA00050000AC; 2213 }; 2214 [0] { // Traps 2215 } // end Traps 2216 [1] { // Attributes 2217 Attr(#23, 6) { // LineNumberTable at 0x0474 2218 [1] { // LineNumberTable 2219 0 1; // at 0x0480 2220 } 2221 } // end LineNumberTable 2222 } // Attributes 2223 } // end Code 2224 } // Attributes 2225 } // Member 2226 ; 2227 { // Member at 0x0480 2228 0x0011; // access 2229 #30; // name_cpx 2230 #31; // sig_cpx 2231 [1] { // Attributes 2232 Attr(#22, 31) { // Code at 0x0488 2233 1; // max_stack 2234 1; // max_locals 2235 Bytes[7]{ 2236 0x2ABA00060000B0; 2237 }; 2238 [0] { // Traps 2239 } // end Traps 2240 [1] { // Attributes 2241 Attr(#23, 6) { // LineNumberTable at 0x04A1 2242 [1] { // LineNumberTable 2243 0 1; // at 0x04AD 2244 } 2245 } // end LineNumberTable 2246 } // Attributes 2247 } // end Code 2248 } // Attributes 2249 } // Member 2250 ; 2251 { // Member at 0x04AD 2252 0x0011; // access 2253 #32; // name_cpx 2254 #33; // sig_cpx 2255 [1] { // Attributes 2256 Attr(#22, 31) { // Code at 0x04B5 2257 2; // max_stack 2258 1; // max_locals 2259 Bytes[7]{ 2260 0x2ABA00070000AD; 2261 }; 2262 [0] { // Traps 2263 } // end Traps 2264 [1] { // Attributes 2265 Attr(#23, 6) { // LineNumberTable at 0x04CE 2266 [1] { // LineNumberTable 2267 0 1; // at 0x04DA 2268 } 2269 } // end LineNumberTable 2270 } // Attributes 2271 } // end Code 2272 } // Attributes 2273 } // Member 2274 ; 2275 { // Member at 0x04DA 2276 0x0008; // access 2277 #34; // name_cpx 2278 #21; // sig_cpx 2279 [1] { // Attributes 2280 Attr(#22, 43) { // Code at 0x04E2 2281 1; // max_stack 2282 0; // max_locals 2283 Bytes[15]{ 2284 0x1208B80009B3000A; 2285 0xCB000BB3000CB1; 2286 }; 2287 [0] { // Traps 2288 } // end Traps 2289 [1] { // Attributes 2290 Attr(#23, 10) { // LineNumberTable at 0x0503 2291 [2] { // LineNumberTable 2292 0 2; // at 0x050F 2293 8 4; // at 0x0513 2294 } 2295 } // end LineNumberTable 2296 } // Attributes 2297 } // end Code 2298 } // Attributes 2299 } // Member 2300 ; 2301 { // Member at 0x0513 2302 0x1008; // access 2303 #35; // name_cpx 2304 #36; // sig_cpx 2305 [1] { // Attributes 2306 Attr(#22, 45) { // Code at 0x051B 2307 2; // max_stack 2308 1; // max_locals 2309 Bytes[13]{ 2310 0xCB00024B042A5FCC; 2311 0x00034B2AB0; 2312 }; 2313 [0] { // Traps 2314 } // end Traps 2315 [1] { // Attributes 2316 Attr(#23, 14) { // LineNumberTable at 0x053A 2317 [3] { // LineNumberTable 2318 0 6; // at 0x0546 2319 4 7; // at 0x054A 2320 11 8; // at 0x054E 2321 } 2322 } // end LineNumberTable 2323 } // Attributes 2324 } // end Code 2325 } // Attributes 2326 } // Member 2327 } // methods 2328 2329 [3] { // Attributes 2330 Attr(#37, 2) { // SourceFile at 0x0550 2331 #38; 2332 } // end SourceFile 2333 ; 2334 Attr(#64, 10) { // InnerClasses at 0x0558 2335 [1] { // InnerClasses 2336 #62 #66 #63 25; // at 0x0568 2337 } 2338 } // end InnerClasses 2339 ; 2340 Attr(#42, 6) { // BootstrapMethods at 0x0568 2341 [1] { // bootstrap_methods 2342 { // bootstrap_method 2343 #43; // bootstrap_method_ref 2344 [0] { // bootstrap_arguments 2345 } // bootstrap_arguments 2346 } // bootstrap_method 2347 } 2348 } // end BootstrapMethods 2349 } // Attributes 2350 } // end class CircStaticA 2351 2352 2353 class CircStaticB { 2354 0xCAFEBABE; 2355 0; // minor version 2356 57; // version 2357 [69] { // Constant Pool 2358 ; // first element is empty 2359 Method #13 #39; // #1 at 0x0A 2360 class #40; // #2 at 0x0F 2361 Field #2 #41; // #3 at 0x12 2362 InvokeDynamic 0s #44; // #4 at 0x17 2363 InvokeDynamic 0s #45; // #5 at 0x1C 2364 InvokeDynamic 0s #46; // #6 at 0x21 2365 InvokeDynamic 0s #47; // #7 at 0x26 2366 int 0x01234567; // #8 at 0x2B 2367 Method #2 #48; // #9 at 0x30 2368 Field #2 #49; // #10 at 0x35 2369 class #50; // #11 at 0x3A 2370 Field #2 #51; // #12 at 0x3D 2371 class #52; // #13 at 0x42 2372 Utf8 "VT"; // #14 at 0x45 2373 Utf8 "QCircStaticB;"; // #15 at 0x4A 2374 Utf8 "int_v"; // #16 at 0x5A 2375 Utf8 "I"; // #17 at 0x62 2376 Utf8 "v2"; // #18 at 0x66 2377 Utf8 "QCircStaticA;"; // #19 at 0x6B 2378 Utf8 "<init>"; // #20 at 0x7B 2379 Utf8 "()V"; // #21 at 0x84 2380 Utf8 "Code"; // #22 at 0x8A 2381 Utf8 "LineNumberTable"; // #23 at 0x91 2382 Utf8 "makeCircStaticB"; // #24 at 0xA3 2383 Utf8 "(I)QCircStaticB;"; // #25 at 0xB5 2384 Utf8 "hashCode"; // #26 at 0xC8 2385 Utf8 "()I"; // #27 at 0xD3 2386 Utf8 "equals"; // #28 at 0xD9 2387 Utf8 "(Ljava/lang/Object;)Z"; // #29 at 0xE2 2388 Utf8 "toString"; // #30 at 0xFA 2389 Utf8 "()Ljava/lang/String;"; // #31 at 0x0105 2390 Utf8 "longHashCode"; // #32 at 0x011C 2391 Utf8 "()J"; // #33 at 0x012B 2392 Utf8 "<clinit>"; // #34 at 0x0131 2393 Utf8 "$makeValue$"; // #35 at 0x013C 2394 Utf8 "()QCircStaticB;"; // #36 at 0x014A 2395 Utf8 "SourceFile"; // #37 at 0x015C 2396 Utf8 "CircStaticB.java"; // #38 at 0x0169 2397 NameAndType #20 #21; // #39 at 0x017C 2398 Utf8 "CircStaticB"; // #40 at 0x0181 2399 NameAndType #16 #17; // #41 at 0x018F 2400 Utf8 "BootstrapMethods"; // #42 at 0x0194 2401 MethodHandle 6b #53; // #43 at 0x01A7 2402 NameAndType #26 #54; // #44 at 0x01AB 2403 NameAndType #28 #55; // #45 at 0x01B0 2404 NameAndType #30 #56; // #46 at 0x01B5 2405 NameAndType #32 #57; // #47 at 0x01BA 2406 NameAndType #24 #25; // #48 at 0x01BF 2407 NameAndType #14 #15; // #49 at 0x01C4 2408 Utf8 "CircStaticA"; // #50 at 0x01C9 2409 NameAndType #18 #19; // #51 at 0x01D7 2410 Utf8 "java/lang/Object"; // #52 at 0x01DC 2411 Method #58 #59; // #53 at 0x01EF 2412 Utf8 "(Ljava/lang/Object;)I"; // #54 at 0x01F4 2413 Utf8 "(Ljava/lang/Object;Ljava/lang/Object;)Z"; // #55 at 0x020C 2414 Utf8 "(Ljava/lang/Object;)Ljava/lang/String;"; // #56 at 0x0236 2415 Utf8 "(Ljava/lang/Object;)J"; // #57 at 0x025F 2416 class #60; // #58 at 0x0277 2417 NameAndType #61 #65; // #59 at 0x027A 2418 Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #60 at 0x027F 2419 Utf8 "makeBootstrapMethod"; // #61 at 0x02A8 2420 class #67; // #62 at 0x02BE 2421 Utf8 "Lookup"; // #63 at 0x02C1 2422 Utf8 "InnerClasses"; // #64 at 0x02CA 2423 Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #65 at 0x02D9 2424 class #68; // #66 at 0x034F 2425 Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #67 at 0x0352 2426 Utf8 "java/lang/invoke/MethodHandles"; // #68 at 0x037A 2427 } // Constant Pool 2428 2429 0x0130; // access [ ACC_SUPER ACC_FINAL ] 2430 #2;// this_cpx 2431 #13;// super_cpx 2432 2433 [0] { // Interfaces 2434 } // Interfaces 2435 2436 [3] { // fields 2437 { // Member at 0x03A5 2438 0x0018; // access 2439 #14; // name_cpx 2440 #15; // sig_cpx 2441 [0] { // Attributes 2442 } // Attributes 2443 } // Member 2444 ; 2445 { // Member at 0x03AD 2446 0x0010; // access 2447 #16; // name_cpx 2448 #17; // sig_cpx 2449 [0] { // Attributes 2450 } // Attributes 2451 } // Member 2452 ; 2453 { // Member at 0x03B5 2454 0x0018; // access 2455 #18; // name_cpx 2456 #19; // sig_cpx 2457 [0] { // Attributes 2458 } // Attributes 2459 } // Member 2460 } // fields 2461 2462 [8] { // methods 2463 { // Member at 0x03BF 2464 0x0000; // access 2465 #20; // name_cpx 2466 #21; // sig_cpx 2467 [1] { // Attributes 2468 Attr(#22, 29) { // Code at 0x03C7 2469 1; // max_stack 2470 1; // max_locals 2471 Bytes[5]{ 2472 0x2AB70001B1; 2473 }; 2474 [0] { // Traps 2475 } // end Traps 2476 [1] { // Attributes 2477 Attr(#23, 6) { // LineNumberTable at 0x03DE 2478 [1] { // LineNumberTable 2479 0 6; // at 0x03EA 2480 } 2481 } // end LineNumberTable 2482 } // Attributes 2483 } // end Code 2484 } // Attributes 2485 } // Member 2486 ; 2487 { // Member at 0x03EA 2488 0x0008; // access 2489 #24; // name_cpx 2490 #25; // sig_cpx 2491 [1] { // Attributes 2492 Attr(#22, 45) { // Code at 0x03F2 2493 2; // max_stack 2494 2; // max_locals 2495 Bytes[13]{ 2496 0xCB00024C1A2B5FCC; 2497 0x00034C2BB0; 2498 }; 2499 [0] { // Traps 2500 } // end Traps 2501 [1] { // Attributes 2502 Attr(#23, 14) { // LineNumberTable at 0x0411 2503 [3] { // LineNumberTable 2504 0 11; // at 0x041D 2505 4 12; // at 0x0421 2506 11 13; // at 0x0425 2507 } 2508 } // end LineNumberTable 2509 } // Attributes 2510 } // end Code 2511 } // Attributes 2512 } // Member 2513 ; 2514 { // Member at 0x0425 2515 0x0011; // access 2516 #26; // name_cpx 2517 #27; // sig_cpx 2518 [1] { // Attributes 2519 Attr(#22, 31) { // Code at 0x042D 2520 1; // max_stack 2521 1; // max_locals 2522 Bytes[7]{ 2523 0x2ABA00040000AC; 2524 }; 2525 [0] { // Traps 2526 } // end Traps 2527 [1] { // Attributes 2528 Attr(#23, 6) { // LineNumberTable at 0x0446 2529 [1] { // LineNumberTable 2530 0 1; // at 0x0452 2531 } 2532 } // end LineNumberTable 2533 } // Attributes 2534 } // end Code 2535 } // Attributes 2536 } // Member 2537 ; 2538 { // Member at 0x0452 2539 0x0011; // access 2540 #28; // name_cpx 2541 #29; // sig_cpx 2542 [1] { // Attributes 2543 Attr(#22, 32) { // Code at 0x045A 2544 2; // max_stack 2545 2; // max_locals 2546 Bytes[8]{ 2547 0x2A2BBA00050000AC; 2548 }; 2549 [0] { // Traps 2550 } // end Traps 2551 [1] { // Attributes 2552 Attr(#23, 6) { // LineNumberTable at 0x0474 2553 [1] { // LineNumberTable 2554 0 1; // at 0x0480 2555 } 2556 } // end LineNumberTable 2557 } // Attributes 2558 } // end Code 2559 } // Attributes 2560 } // Member 2561 ; 2562 { // Member at 0x0480 2563 0x0011; // access 2564 #30; // name_cpx 2565 #31; // sig_cpx 2566 [1] { // Attributes 2567 Attr(#22, 31) { // Code at 0x0488 2568 1; // max_stack 2569 1; // max_locals 2570 Bytes[7]{ 2571 0x2ABA00060000B0; 2572 }; 2573 [0] { // Traps 2574 } // end Traps 2575 [1] { // Attributes 2576 Attr(#23, 6) { // LineNumberTable at 0x04A1 2577 [1] { // LineNumberTable 2578 0 1; // at 0x04AD 2579 } 2580 } // end LineNumberTable 2581 } // Attributes 2582 } // end Code 2583 } // Attributes 2584 } // Member 2585 ; 2586 { // Member at 0x04AD 2587 0x0011; // access 2588 #32; // name_cpx 2589 #33; // sig_cpx 2590 [1] { // Attributes 2591 Attr(#22, 31) { // Code at 0x04B5 2592 2; // max_stack 2593 1; // max_locals 2594 Bytes[7]{ 2595 0x2ABA00070000AD; 2596 }; 2597 [0] { // Traps 2598 } // end Traps 2599 [1] { // Attributes 2600 Attr(#23, 6) { // LineNumberTable at 0x04CE 2601 [1] { // LineNumberTable 2602 0 1; // at 0x04DA 2603 } 2604 } // end LineNumberTable 2605 } // Attributes 2606 } // end Code 2607 } // Attributes 2608 } // Member 2609 ; 2610 { // Member at 0x04DA 2611 0x0008; // access 2612 #34; // name_cpx 2613 #21; // sig_cpx 2614 [1] { // Attributes 2615 Attr(#22, 43) { // Code at 0x04E2 2616 1; // max_stack 2617 0; // max_locals 2618 Bytes[15]{ 2619 0x1208B80009B3000A; 2620 0xCB000BB3000CB1; 2621 }; 2622 [0] { // Traps 2623 } // end Traps 2624 [1] { // Attributes 2625 Attr(#23, 10) { // LineNumberTable at 0x0503 2626 [2] { // LineNumberTable 2627 0 2; // at 0x050F 2628 8 4; // at 0x0513 2629 } 2630 } // end LineNumberTable 2631 } // Attributes 2632 } // end Code 2633 } // Attributes 2634 } // Member 2635 ; 2636 { // Member at 0x0513 2637 0x1008; // access 2638 #35; // name_cpx 2639 #36; // sig_cpx 2640 [1] { // Attributes 2641 Attr(#22, 45) { // Code at 0x051B 2642 2; // max_stack 2643 1; // max_locals 2644 Bytes[13]{ 2645 0xCB00024B042A5FCC; 2646 0x00034B2AB0; 2647 }; 2648 [0] { // Traps 2649 } // end Traps 2650 [1] { // Attributes 2651 Attr(#23, 14) { // LineNumberTable at 0x053A 2652 [3] { // LineNumberTable 2653 0 6; // at 0x0546 2654 4 7; // at 0x054A 2655 11 8; // at 0x054E 2656 } 2657 } // end LineNumberTable 2658 } // Attributes 2659 } // end Code 2660 } // Attributes 2661 } // Member 2662 } // methods 2663 2664 [3] { // Attributes 2665 Attr(#37, 2) { // SourceFile at 0x0550 2666 #38; 2667 } // end SourceFile 2668 ; 2669 Attr(#64, 10) { // InnerClasses at 0x0558 2670 [1] { // InnerClasses 2671 #62 #66 #63 25; // at 0x0568 2672 } 2673 } // end InnerClasses 2674 ; 2675 Attr(#42, 6) { // BootstrapMethods at 0x0568 2676 [1] { // bootstrap_methods 2677 { // bootstrap_method 2678 #43; // bootstrap_method_ref 2679 [0] { // bootstrap_arguments 2680 } // bootstrap_arguments 2681 } // bootstrap_method 2682 } 2683 } // end BootstrapMethods 2684 } // Attributes 2685 } // end class CircStaticB 2686 2687 2688 ////////////////////////////////////////////////////////////////////// 2689 2690 // Test that a value type cannot be Cloneable. 2691 // 2692 // final value class ValueCloneable implements Cloneable { 2693 // final int field; 2694 // private ValueCloneable() { field = 0; } 2695 //} 2696 2697 class ValueCloneable { 2698 0xCAFEBABE; 2699 0; // minor version 2700 57; // version 2701 [20] { // Constant Pool 2702 ; // first element is empty 2703 Method #4 #14; // #1 at 0x0A 2704 Field #3 #15; // #2 at 0x0F 2705 class #16; // #3 at 0x14 2706 class #18; // #4 at 0x17 2707 class #19; // #5 at 0x1A 2708 Utf8 "field"; // #6 at 0x1D 2709 Utf8 "I"; // #7 at 0x25 2710 Utf8 "<init>"; // #8 at 0x29 2711 Utf8 "()V"; // #9 at 0x32 2712 Utf8 "Code"; // #10 at 0x38 2713 Utf8 "LineNumberTable"; // #11 at 0x3F 2714 Utf8 "SourceFile"; // #12 at 0x51 2715 Utf8 "ValueCloneable.java"; // #13 at 0x5E 2716 NameAndType #8 #9; // #14 at 0x74 2717 NameAndType #6 #7; // #15 at 0x79 2718 Utf8 "ValueCloneable"; // #16 at 0x7E 2719 Utf8 "ValueTypes"; // #17 at 0x8F 2720 Utf8 "java/lang/Object"; // #18 at 0x9C 2721 Utf8 "java/lang/Cloneable"; // #19 at 0xAF 2722 } // Constant Pool 2723 2724 0x0130; // access [ ACC_SUPER ACC_FINAL ] 2725 #3;// this_cpx 2726 #4;// super_cpx 2727 2728 [1] { // Interfaces 2729 #5; 2730 } // Interfaces 2731 2732 [1] { // fields 2733 { // Member at 0xD1 2734 0x0010; // access 2735 #6; // name_cpx 2736 #7; // sig_cpx 2737 [0] { // Attributes 2738 } // Attributes 2739 } // Member 2740 } // fields 2741 2742 [1] { // methods 2743 { // Member at 0xDB 2744 0x0002; // access 2745 #8; // name_cpx 2746 #9; // sig_cpx 2747 [1] { // Attributes 2748 Attr(#10, 34) { // Code at 0xE3 2749 2; // max_stack 2750 1; // max_locals 2751 Bytes[10]{ 2752 0x2AB700012A03B500; 2753 0x02B1; 2754 }; 2755 [0] { // Traps 2756 } // end Traps 2757 [1] { // Attributes 2758 Attr(#11, 6) { // LineNumberTable at 0xFF 2759 [1] { // LineNumberTable 2760 0 3; // at 0x010B 2761 } 2762 } // end LineNumberTable 2763 } // Attributes 2764 } // end Code 2765 } // Attributes 2766 } // Member 2767 } // methods 2768 2769 [2] { // Attributes 2770 Attr(#12, 2) { // SourceFile at 0x010D 2771 #13; 2772 } // end SourceFile 2773 ; 2774 Attr(#17, 4) { // ValueTypes at 0x0115 2775 0x00010003; 2776 } // end ValueTypes 2777 } // Attributes 2778 } // end class ValueCloneable