src/share/classes/com/sun/tools/javac/jvm/ClassWriter.java

Print this page

        

*** 728,745 **** /** * Write method parameter names attribute. */ int writeMethodParametersAttr(MethodSymbol m) { ! if (m.params != null && 0 != m.params.length()) { ! int attrIndex = writeAttr(names.MethodParameters); ! databuf.appendByte(m.params.length()); for (VarSymbol s : m.params) { ! // TODO: expand to cover synthesized, once we figure out ! // how to represent that. ! final int flags = (int) s.flags() & (FINAL | SYNTHETIC); ! // output parameter info databuf.appendChar(pool.put(s.name)); databuf.appendInt(flags); } endAttr(attrIndex); return 1; --- 728,755 ---- /** * Write method parameter names attribute. */ int writeMethodParametersAttr(MethodSymbol m) { ! MethodType ty = m.externalType(types).asMethodType(); ! final int allparams = ty.argtypes.size(); ! if (m.params != null && allparams != 0) { ! final int attrIndex = writeAttr(names.MethodParameters); ! databuf.appendByte(allparams); ! // Write extra parameters first ! for (VarSymbol s : m.extraParams) { ! final int flags = ! ((int) s.flags() & (FINAL | SYNTHETIC | MANDATED)) | ! ((int) m.flags() & SYNTHETIC); ! databuf.appendChar(pool.put(s.name)); ! databuf.appendInt(flags); ! } ! // Now write the real parameters for (VarSymbol s : m.params) { ! final int flags = ! ((int) s.flags() & (FINAL | SYNTHETIC | MANDATED)) | ! ((int) m.flags() & SYNTHETIC); databuf.appendChar(pool.put(s.name)); databuf.appendInt(flags); } endAttr(attrIndex); return 1;