< prev index next >

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

Print this page

        

*** 472,481 **** --- 472,489 ---- } else if (value instanceof MethodHandle) { MethodHandle ref = (MethodHandle)value; poolbuf.appendByte(CONSTANT_MethodHandle); poolbuf.appendByte(ref.refKind); poolbuf.appendChar(pool.put(ref.refSym)); + } else if (value instanceof ModuleSymbol) { + ModuleSymbol m = (ModuleSymbol)value; + poolbuf.appendByte(CONSTANT_Module); + poolbuf.appendChar(pool.put(m.name)); + } else if (value instanceof PackageSymbol) { + PackageSymbol m = (PackageSymbol)value; + poolbuf.appendByte(CONSTANT_Package); + poolbuf.appendChar(pool.put(names.fromUtf(externalize(m.fullname)))); } else { Assert.error("writePool " + value); } i++; }
*** 952,1001 **** int writeModuleAttribute(ClassSymbol c) { ModuleSymbol m = (ModuleSymbol) c.owner; int alenIdx = writeAttr(names.Module); ! databuf.appendChar(pool.put(names.fromUtf(externalize(m.name)))); databuf.appendChar(ModuleFlags.value(m.flags)); // module_flags ListBuffer<RequiresDirective> requires = new ListBuffer<>(); for (RequiresDirective r: m.requires) { if (!r.flags.contains(RequiresFlag.EXTRA)) requires.add(r); } databuf.appendChar(requires.size()); for (RequiresDirective r: requires) { ! databuf.appendChar(pool.put(names.fromUtf(externalize(r.module.name)))); databuf.appendChar(RequiresFlag.value(r.flags)); } List<ExportsDirective> exports = m.exports; databuf.appendChar(exports.size()); for (ExportsDirective e: exports) { ! databuf.appendChar(pool.put(names.fromUtf(externalize(e.packge.flatName())))); databuf.appendChar(ExportsFlag.value(e.flags)); if (e.modules == null) { databuf.appendChar(0); } else { databuf.appendChar(e.modules.size()); for (ModuleSymbol msym: e.modules) { ! databuf.appendChar(pool.put(names.fromUtf(externalize(msym.name)))); } } } List<OpensDirective> opens = m.opens; databuf.appendChar(opens.size()); for (OpensDirective o: opens) { ! databuf.appendChar(pool.put(names.fromUtf(externalize(o.packge.flatName())))); databuf.appendChar(OpensFlag.value(o.flags)); if (o.modules == null) { databuf.appendChar(0); } else { databuf.appendChar(o.modules.size()); for (ModuleSymbol msym: o.modules) { ! databuf.appendChar(pool.put(names.fromUtf(externalize(msym.name)))); } } } List<UsesDirective> uses = m.uses; --- 960,1011 ---- int writeModuleAttribute(ClassSymbol c) { ModuleSymbol m = (ModuleSymbol) c.owner; int alenIdx = writeAttr(names.Module); ! databuf.appendChar(pool.put(m)); databuf.appendChar(ModuleFlags.value(m.flags)); // module_flags + databuf.appendChar(m.version != null ? pool.put(m.version) : 0); ListBuffer<RequiresDirective> requires = new ListBuffer<>(); for (RequiresDirective r: m.requires) { if (!r.flags.contains(RequiresFlag.EXTRA)) requires.add(r); } databuf.appendChar(requires.size()); for (RequiresDirective r: requires) { ! databuf.appendChar(pool.put(r.module)); databuf.appendChar(RequiresFlag.value(r.flags)); + databuf.appendChar(r.module.version != null ? pool.put(r.module.version) : 0); } List<ExportsDirective> exports = m.exports; databuf.appendChar(exports.size()); for (ExportsDirective e: exports) { ! databuf.appendChar(pool.put(e.packge)); databuf.appendChar(ExportsFlag.value(e.flags)); if (e.modules == null) { databuf.appendChar(0); } else { databuf.appendChar(e.modules.size()); for (ModuleSymbol msym: e.modules) { ! databuf.appendChar(pool.put(msym)); } } } List<OpensDirective> opens = m.opens; databuf.appendChar(opens.size()); for (OpensDirective o: opens) { ! databuf.appendChar(pool.put(o.packge)); databuf.appendChar(OpensFlag.value(o.flags)); if (o.modules == null) { databuf.appendChar(0); } else { databuf.appendChar(o.modules.size()); for (ModuleSymbol msym: o.modules) { ! databuf.appendChar(pool.put(msym)); } } } List<UsesDirective> uses = m.uses;
*** 1716,1726 **** pw.println("---" + flagNames(flags)); } databuf.appendChar(flags); if (c.owner.kind == MDL) { ! databuf.appendChar(0); } else { databuf.appendChar(pool.put(c)); } databuf.appendChar(supertype.hasTag(CLASS) ? pool.put(supertype.tsym) : 0); databuf.appendChar(interfaces.length()); --- 1726,1737 ---- pw.println("---" + flagNames(flags)); } databuf.appendChar(flags); if (c.owner.kind == MDL) { ! PackageSymbol unnamed = ((ModuleSymbol) c.owner).unnamedPackage; ! databuf.appendChar(pool.put(new ClassSymbol(0, names.module_info, unnamed))); } else { databuf.appendChar(pool.put(c)); } databuf.appendChar(supertype.hasTag(CLASS) ? pool.put(supertype.tsym) : 0); databuf.appendChar(interfaces.length());
< prev index next >