950 // new jdk.internal.module.ModuleHashes.Builder
951 newModuleHashesBuilder();
952
953 // Invoke ModuleHashes.Builder::hashForModule
954 recordedHashes
955 .names()
956 .forEach(mn -> hashForModule(mn, recordedHashes.hashFor(mn)));
957
958 // Put ModuleHashes into the hashes array
959 pushModuleHashes();
960 }
961
962
963 /*
964 * Create ModuleHashes.Builder instance
965 */
966 void newModuleHashesBuilder() {
967 hmv.visitTypeInsn(NEW, MODULE_HASHES_BUILDER);
968 hmv.visitInsn(DUP);
969 hmv.visitLdcInsn(recordedHashes.algorithm());
970 hmv.visitMethodInsn(INVOKESPECIAL, MODULE_HASHES_BUILDER,
971 "<init>", "(Ljava/lang/String;)V", false);
972 hmv.visitVarInsn(ASTORE, BUILDER_VAR);
973 hmv.visitVarInsn(ALOAD, BUILDER_VAR);
974 }
975
976
977 /*
978 * Invoke ModuleHashes.Builder::build and put the returned
979 * ModuleHashes to the hashes array
980 */
981 void pushModuleHashes() {
982 hmv.visitVarInsn(ALOAD, MH_VAR);
983 pushInt(hmv, index);
984 hmv.visitVarInsn(ALOAD, BUILDER_VAR);
985 hmv.visitMethodInsn(INVOKEVIRTUAL, MODULE_HASHES_BUILDER,
986 "build", "()Ljdk/internal/module/ModuleHashes;",
987 false);
988 hmv.visitInsn(AASTORE);
989 }
990
991 /*
|
950 // new jdk.internal.module.ModuleHashes.Builder
951 newModuleHashesBuilder();
952
953 // Invoke ModuleHashes.Builder::hashForModule
954 recordedHashes
955 .names()
956 .forEach(mn -> hashForModule(mn, recordedHashes.hashFor(mn)));
957
958 // Put ModuleHashes into the hashes array
959 pushModuleHashes();
960 }
961
962
963 /*
964 * Create ModuleHashes.Builder instance
965 */
966 void newModuleHashesBuilder() {
967 hmv.visitTypeInsn(NEW, MODULE_HASHES_BUILDER);
968 hmv.visitInsn(DUP);
969 hmv.visitLdcInsn(recordedHashes.algorithm());
970 pushInt(hmv, ((4 * recordedHashes.names().size()) / 3) + 1);
971 hmv.visitMethodInsn(INVOKESPECIAL, MODULE_HASHES_BUILDER,
972 "<init>", "(Ljava/lang/String;I)V", false);
973 hmv.visitVarInsn(ASTORE, BUILDER_VAR);
974 hmv.visitVarInsn(ALOAD, BUILDER_VAR);
975 }
976
977
978 /*
979 * Invoke ModuleHashes.Builder::build and put the returned
980 * ModuleHashes to the hashes array
981 */
982 void pushModuleHashes() {
983 hmv.visitVarInsn(ALOAD, MH_VAR);
984 pushInt(hmv, index);
985 hmv.visitVarInsn(ALOAD, BUILDER_VAR);
986 hmv.visitMethodInsn(INVOKEVIRTUAL, MODULE_HASHES_BUILDER,
987 "build", "()Ljdk/internal/module/ModuleHashes;",
988 false);
989 hmv.visitInsn(AASTORE);
990 }
991
992 /*
|