@@ -589,52 +589,57 @@ private String getPrimitiveFromClass(String clazz) {
589589 }
590590
591591 private class MyInterpreter extends BasicInterpreter
592- {
593- @ Override
594- public BasicValue newValue (final Type type )
595- {
596- if (type == null )
597- return new BasicValue (Type .getType ("Ljava/lang/Object;" ));
598- switch (type .getSort ())
599- {
600- case Type .VOID :
601- return null ;
602- case Type .BOOLEAN :
603- case Type .CHAR :
604- case Type .BYTE :
605- case Type .SHORT :
606- case Type .INT :
607- return BasicValue .INT_VALUE ;
608- case Type .FLOAT :
609- return BasicValue .FLOAT_VALUE ;
610- case Type .LONG :
611- return BasicValue .LONG_VALUE ;
612- case Type .DOUBLE :
613- return BasicValue .DOUBLE_VALUE ;
614- case Type .ARRAY :
615- case Type .OBJECT :
616- return new BasicValue (type );
617- default :
618- throw new Error ("Internal error" );
619- }
620- }
621-
622- @ Override
623- public BasicValue binaryOperation (final AbstractInsnNode insn ,
624- final BasicValue value1 , final BasicValue value2 )
625- throws AnalyzerException
626- {
627- if (insn .getOpcode () == Opcodes .AALOAD )
628- return new BasicValue (value1 .getType ().getElementType ());
629- return super .binaryOperation (insn , value1 , value2 );
630- }
631-
632- @ Override
633- public BasicValue merge (final BasicValue v , final BasicValue w )
634- {
635- if (!v .equals (w ))
636- return new BasicValue (Type .getType ("Ljava/lang/Object;" ));
637- return v ;
638- }
639- }
592+ {
593+ public MyInterpreter ()
594+ {
595+ super (Opcodes .ASM8 );
596+ }
597+
598+ @ Override
599+ public BasicValue newValue (final Type type )
600+ {
601+ if (type == null )
602+ return new BasicValue (Type .getType ("Ljava/lang/Object;" ));
603+ switch (type .getSort ())
604+ {
605+ case Type .VOID :
606+ return null ;
607+ case Type .BOOLEAN :
608+ case Type .CHAR :
609+ case Type .BYTE :
610+ case Type .SHORT :
611+ case Type .INT :
612+ return BasicValue .INT_VALUE ;
613+ case Type .FLOAT :
614+ return BasicValue .FLOAT_VALUE ;
615+ case Type .LONG :
616+ return BasicValue .LONG_VALUE ;
617+ case Type .DOUBLE :
618+ return BasicValue .DOUBLE_VALUE ;
619+ case Type .ARRAY :
620+ case Type .OBJECT :
621+ return new BasicValue (type );
622+ default :
623+ throw new Error ("Internal error" );
624+ }
625+ }
626+
627+ @ Override
628+ public BasicValue binaryOperation (final AbstractInsnNode insn ,
629+ final BasicValue value1 , final BasicValue value2 )
630+ throws AnalyzerException
631+ {
632+ if (insn .getOpcode () == Opcodes .AALOAD )
633+ return new BasicValue (value1 .getType ().getElementType ());
634+ return super .binaryOperation (insn , value1 , value2 );
635+ }
636+
637+ @ Override
638+ public BasicValue merge (final BasicValue v , final BasicValue w )
639+ {
640+ if (!v .equals (w ))
641+ return new BasicValue (Type .getType ("Ljava/lang/Object;" ));
642+ return v ;
643+ }
644+ }
640645}
0 commit comments