640 final int allparams = ty.argtypes.size(); 641 if (m.params != null && allparams != 0) { 642 final int attrIndex = writeAttr(names.MethodParameters); 643 databuf.appendByte(allparams); 644 // Write extra parameters first 645 for (VarSymbol s : m.extraParams) { 646 final int flags = 647 ((int) s.flags() & (FINAL | SYNTHETIC | MANDATED)) | 648 ((int) m.flags() & SYNTHETIC); 649 databuf.appendChar(pool.put(s.name)); 650 databuf.appendChar(flags); 651 } 652 // Now write the real parameters 653 for (VarSymbol s : m.params) { 654 final int flags = 655 ((int) s.flags() & (FINAL | SYNTHETIC | MANDATED)) | 656 ((int) m.flags() & SYNTHETIC); 657 databuf.appendChar(pool.put(s.name)); 658 databuf.appendChar(flags); 659 } 660 endAttr(attrIndex); 661 return 1; 662 } else 663 return 0; 664 } 665 666 667 /** Write method parameter annotations; 668 * return number of attributes written. 669 */ 670 int writeParameterAttrs(MethodSymbol m) { 671 boolean hasVisible = false; 672 boolean hasInvisible = false; 673 if (m.params != null) { 674 for (VarSymbol s : m.params) { 675 for (Attribute.Compound a : s.getRawAttributes()) { 676 switch (types.getRetention(a)) { 677 case SOURCE: break; 678 case CLASS: hasInvisible = true; break; 679 case RUNTIME: hasVisible = true; break; | 640 final int allparams = ty.argtypes.size(); 641 if (m.params != null && allparams != 0) { 642 final int attrIndex = writeAttr(names.MethodParameters); 643 databuf.appendByte(allparams); 644 // Write extra parameters first 645 for (VarSymbol s : m.extraParams) { 646 final int flags = 647 ((int) s.flags() & (FINAL | SYNTHETIC | MANDATED)) | 648 ((int) m.flags() & SYNTHETIC); 649 databuf.appendChar(pool.put(s.name)); 650 databuf.appendChar(flags); 651 } 652 // Now write the real parameters 653 for (VarSymbol s : m.params) { 654 final int flags = 655 ((int) s.flags() & (FINAL | SYNTHETIC | MANDATED)) | 656 ((int) m.flags() & SYNTHETIC); 657 databuf.appendChar(pool.put(s.name)); 658 databuf.appendChar(flags); 659 } 660 // Now write the captured locals 661 for (VarSymbol s : m.capturedLocals) { 662 final int flags = 663 ((int) s.flags() & (FINAL | SYNTHETIC | MANDATED)) | 664 ((int) m.flags() & SYNTHETIC); 665 databuf.appendChar(pool.put(s.name)); 666 databuf.appendChar(flags); 667 } 668 endAttr(attrIndex); 669 return 1; 670 } else 671 return 0; 672 } 673 674 675 /** Write method parameter annotations; 676 * return number of attributes written. 677 */ 678 int writeParameterAttrs(MethodSymbol m) { 679 boolean hasVisible = false; 680 boolean hasInvisible = false; 681 if (m.params != null) { 682 for (VarSymbol s : m.params) { 683 for (Attribute.Compound a : s.getRawAttributes()) { 684 switch (types.getRetention(a)) { 685 case SOURCE: break; 686 case CLASS: hasInvisible = true; break; 687 case RUNTIME: hasVisible = true; break; |