fixes for IDEA-CR-34442

This commit is contained in:
Egor Ushakov
2018-07-04 15:57:48 +03:00
parent a0fa7add19
commit 6ad9deac2a
2 changed files with 3 additions and 7 deletions
@@ -31,13 +31,11 @@ public class MethodBytecodeUtil {
* Allows to use ASM MethodVisitor with jdi method bytecode
*/
public static void visit(Method method, MethodVisitor methodVisitor, boolean withLineNumbers) {
if (method.virtualMachine().canGetBytecodes()) {
visit(method, method.bytecodes(), methodVisitor, withLineNumbers);
}
visit(method, method.bytecodes(), methodVisitor, withLineNumbers);
}
public static void visit(Method method, long maxOffset, MethodVisitor methodVisitor, boolean withLineNumbers) {
if (maxOffset > 0 && method.virtualMachine().canGetBytecodes()) {
if (maxOffset > 0) {
// need to keep the size, otherwise labels array will not be initialized correctly
byte[] originalBytecodes = method.bytecodes();
byte[] bytecodes = originalBytecodes;
@@ -65,9 +63,6 @@ public class MethodBytecodeUtil {
}
private static void visit(Method method, byte[] bytecodes, MethodVisitor methodVisitor, boolean withLineNumbers) {
if (!method.virtualMachine().canGetConstantPool()) {
return;
}
ReferenceType type = method.declaringType();
try {
byte[] constantPool = getConstantPool(type);
@@ -122,6 +122,7 @@ public class WildcardMethodBreakpoint extends Breakpoint<JavaMethodBreakpointPro
VirtualMachineProxyImpl virtualMachineProxy = debugProcess.getVirtualMachineProxy();
if (!virtualMachineProxy.canGetBytecodes() || !virtualMachineProxy.canGetConstantPool()) {
disableEmulation();
return;
}
debugProcess.getRequestsManager().callbackOnPrepareClasses(this, getClassPattern());