3838import com .oracle .truffle .espresso .impl .Method ;
3939import com .oracle .truffle .espresso .impl .ObjectKlass ;
4040import com .oracle .truffle .espresso .meta .Meta ;
41- import com .oracle .truffle .espresso .nodes .bytecodes .InitCheck ;
4241import com .oracle .truffle .espresso .runtime .EspressoContext ;
4342import com .oracle .truffle .espresso .runtime .staticobject .StaticObject ;
4443import com .oracle .truffle .espresso .substitutions .EspressoSubstitutions ;
@@ -61,38 +60,34 @@ static StaticObject doDefault(@SuppressWarnings("unused") StaticObject self, @Ja
6160 @ Bind ("getContext()" ) EspressoContext context ,
6261 @ Cached ("create(context.getMeta().jvmci.EspressoResolvedInstanceType_init.getCallTarget())" ) DirectCallNode objectTypeConstructor ,
6362 @ Cached ("create(context.getMeta().jvmci.EspressoResolvedArrayType_init.getCallTarget())" ) DirectCallNode arrayTypeConstructor ,
64- @ Cached ("create(context.getMeta().jvmci.EspressoResolvedPrimitiveType_forBasicType.getCallTarget())" ) DirectCallNode forBasicType ,
65- @ Cached InitCheck initCheck ) {
63+ @ Cached ("create(context.getMeta().jvmci.EspressoResolvedPrimitiveType_forBasicType.getCallTarget())" ) DirectCallNode forBasicType ) {
6664 assert context .getLanguage ().isInternalJVMCIEnabled ();
6765 Meta meta = context .getMeta ();
6866 if (StaticObject .isNull (clazz )) {
6967 throw meta .throwIllegalArgumentExceptionBoundary ("Class parameter was null" );
7068 }
7169 Klass klass = clazz .getMirrorKlass (meta );
72- return toJVMCIType (klass , objectTypeConstructor , arrayTypeConstructor , forBasicType , initCheck , context , meta );
70+ return toJVMCIType (klass , objectTypeConstructor , arrayTypeConstructor , forBasicType , context , meta );
7371 }
7472 }
7573
76- static StaticObject toJVMCIType (Klass klass , DirectCallNode objectTypeConstructor , DirectCallNode arrayTypeConstructor , DirectCallNode forBasicType , InitCheck initCheck , EspressoContext context ,
77- Meta meta ) {
74+ static StaticObject toJVMCIType (Klass klass , DirectCallNode objectTypeConstructor , DirectCallNode arrayTypeConstructor , DirectCallNode forBasicType , EspressoContext context , Meta meta ) {
7875 if (klass .isArray ()) {
7976 StaticObject jvmciMirror = meta .jvmci .EspressoResolvedArrayType .allocateInstance (context );
8077 ArrayKlass arrayKlass = (ArrayKlass ) klass ;
81- arrayTypeConstructor .call (jvmciMirror , toJVMCIElementalType (arrayKlass .getElementalType (), objectTypeConstructor , forBasicType , initCheck , context , meta ), arrayKlass .getDimension (),
78+ arrayTypeConstructor .call (jvmciMirror , toJVMCIElementalType (arrayKlass .getElementalType (), objectTypeConstructor , forBasicType , context , meta ), arrayKlass .getDimension (),
8279 arrayKlass .mirror ());
8380 return jvmciMirror ;
8481 } else {
85- return toJVMCIElementalType (klass , objectTypeConstructor , forBasicType , initCheck , context , meta );
82+ return toJVMCIElementalType (klass , objectTypeConstructor , forBasicType , context , meta );
8683 }
8784 }
8885
89- static StaticObject toJVMCIObjectType (Klass klass , DirectCallNode objectTypeConstructor , DirectCallNode arrayTypeConstructor , DirectCallNode forBasicType , InitCheck initCheck ,
90- EspressoContext context ,
91- Meta meta ) {
86+ static StaticObject toJVMCIObjectType (Klass klass , DirectCallNode objectTypeConstructor , DirectCallNode arrayTypeConstructor , DirectCallNode forBasicType , EspressoContext context , Meta meta ) {
9287 if (klass .isArray ()) {
9388 StaticObject jvmciMirror = meta .jvmci .EspressoResolvedArrayType .allocateInstance (context );
9489 ArrayKlass arrayKlass = (ArrayKlass ) klass ;
95- arrayTypeConstructor .call (jvmciMirror , toJVMCIElementalType (arrayKlass .getElementalType (), objectTypeConstructor , forBasicType , initCheck , context , meta ), arrayKlass .getDimension (),
90+ arrayTypeConstructor .call (jvmciMirror , toJVMCIElementalType (arrayKlass .getElementalType (), objectTypeConstructor , forBasicType , context , meta ), arrayKlass .getDimension (),
9691 arrayKlass .mirror ());
9792 return jvmciMirror ;
9893 } else {
@@ -111,9 +106,9 @@ static StaticObject toJVMCIObjectType(Klass klass, Meta meta) {
111106 }
112107 }
113108
114- static StaticObject toJVMCIElementalType (Klass klass , DirectCallNode objectTypeConstructor , DirectCallNode forBasicType , InitCheck initCheck , EspressoContext context , Meta meta ) {
109+ static StaticObject toJVMCIElementalType (Klass klass , DirectCallNode objectTypeConstructor , DirectCallNode forBasicType , EspressoContext context , Meta meta ) {
115110 if (klass .isPrimitive ()) {
116- return toJVMCIPrimitiveType (klass .getJavaKind (), forBasicType , initCheck , meta );
111+ return toJVMCIPrimitiveType (klass .getJavaKind (), forBasicType , meta );
117112 } else {
118113 return toJVMCIInstanceType ((ObjectKlass ) klass , objectTypeConstructor , context , meta );
119114 }
@@ -127,15 +122,14 @@ static StaticObject toJVMCIElementalType(Klass klass, Meta meta) {
127122 }
128123 }
129124
130- static StaticObject toJVMCIPrimitiveType (JavaKind kind , DirectCallNode forBasicType , InitCheck initCheck , Meta meta ) {
131- initCheck . execute ( meta .jvmci .EspressoResolvedPrimitiveType );
125+ static StaticObject toJVMCIPrimitiveType (JavaKind kind , DirectCallNode forBasicType , Meta meta ) {
126+ meta .jvmci .EspressoResolvedPrimitiveType . safeInitialize ( );
132127 StaticObject result = (StaticObject ) forBasicType .call (kind .getBasicType ());
133128 assert !StaticObject .isNull (result );
134129 return result ;
135130 }
136131
137132 static StaticObject toJVMCIPrimitiveType (JavaKind kind , Meta meta ) {
138- meta .jvmci .EspressoResolvedPrimitiveType .initialize ();
139133 StaticObject result = (StaticObject ) meta .jvmci .EspressoResolvedPrimitiveType_forBasicType .invokeDirectStatic (kind .getBasicType ());
140134 assert !StaticObject .isNull (result );
141135 return result ;
@@ -158,6 +152,7 @@ static StaticObject toJVMCIInstanceType(ObjectKlass klass, Meta meta) {
158152 static StaticObject toJVMCIUnresolvedType (ByteSequence symbol , DirectCallNode createUnresolved , Meta meta ) {
159153 assert Validation .validTypeDescriptor (symbol , true );
160154 assert (symbol .byteAt (0 ) == 'L' && symbol .byteAt (symbol .length () - 1 ) == ';' ) || symbol .byteAt (0 ) == '[' : symbol ;
155+ meta .jvmci .UnresolvedJavaType .safeInitialize ();
161156 return (StaticObject ) createUnresolved .call (meta .toGuestString (symbol ));
162157 }
163158
0 commit comments