All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nd4j.bytebuddy.branching.stackmanipulation.IfeqNotEquals Maven / Gradle / Ivy

There is a newer version: 0.9.1
Show newest version
package org.nd4j.bytebuddy.branching.stackmanipulation;

import net.bytebuddy.implementation.Implementation;
import net.bytebuddy.implementation.bytecode.StackManipulation;
import net.bytebuddy.jar.asm.Label;
import net.bytebuddy.jar.asm.MethodVisitor;
import net.bytebuddy.jar.asm.Opcodes;

/**
 *
 * Calls the branching op code
 * with the operand 14 (not equals)
 *
 * @author Adam Gibson
 */
public class IfeqNotEquals implements StackManipulation,Opcodes {
    private Label label;

    public IfeqNotEquals(Label label) {
        this.label = label;
    }

    @Override
    public boolean isValid() {
        return true;
    }

    @Override
    public Size apply(MethodVisitor methodVisitor, Implementation.Context implementationContext) {
        methodVisitor.visitJumpInsn(Opcodes.IFEQ, label);
        return new StackManipulation.Size(-1,-1);
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        IfeqNotEquals that = (IfeqNotEquals) o;

        return !(label != null ? !label.equals(that.label) : that.label != null);

    }

    @Override
    public int hashCode() {
        return label != null ? label.hashCode() : 0;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy